home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Information / Programming / Gestalt Selectors 2.6.2 / gestalt-selectors-262.etx
Encoding:
Text File  |  1994-11-02  |  191.0 KB  |  4,444 lines  |  [TEXT/R*ch]

  1.  
  2. Gestalt Selectors List 2.6.2
  3. ============================
  4. First published: 12 October 1992, 13:15 CET (GMT+1)
  5. Last modified  : 2 November 1994, 20:10 CET (GMT+1)
  6.  
  7. This document lists all selectors for use with the Gestalt Manager known to
  8. the editor. These can include selector codes installed by Apple (system)
  9. software or by software from third and so called "fourth" parties (your
  10. software?).
  11. The information in this list is useful for programmers and other people who
  12. can use the Gestalt Manager with their software perhaps even using
  13. externals (with HyperCard, 4th Dimension etc.).
  14.  
  15. This file can be best viewed with a mono-spaced font like Monaco. Because
  16. it is wrapped as setext you can use several utilities to index and read it.
  17. For the Macintosh you can use Easy View and on a UNIX system sv (setext
  18. viewer) works fine. Both are available by FTP from sumex-aim.stanford.edu
  19. (or its mirrors!), archived respectively as:
  20.      info-mac/text/easy-view-250.hqx
  21.      info-mac/text/setext-viewer-05-unix.uu
  22.  
  23. A single question mark indicates an uncertainty regarding the information
  24. in front of the question mark. Three question marks indicate complete
  25. absence of the information.
  26. See for more information about this list the chapters at the end.
  27.  
  28. Contents
  29. --------
  30.     Gestalt Selectors List
  31.       Contents
  32.       Contributions
  33.       Changes Overview
  34.     Gestalt Selector Codes
  35.       Apple System Software (A-F)
  36.       Apple System Software (G-L)
  37.       Apple System Software (M-R)
  38.       Apple System Software (S-Z)
  39.       Apple Additional Software
  40.       Third Parties Software
  41.     Unknown Gestalt Selector Codes
  42.       Apple Software
  43.       Third Parties Software
  44.     Gestalt Manager Calls
  45.       Gestalt Manager Routines
  46.       Undocumented Gestalt Manager Routines
  47.       Gestalt Value Routines
  48.     Kilo-liners
  49.       Direct Gestalt Calls
  50.       Direct GestaltValue Calls
  51.       GestaltSelectorZero
  52.       GestaltBitTest
  53.       Call Gestalt Function Direct
  54.     Reports
  55.       AppleShare File & Print Server selector codes
  56.       AppleTalk
  57.       Copy protection using Gestalt
  58.       Environs & SysEnvirons
  59.       Executor Mac-emulator
  60.       GestaltValue
  61.       Glue code
  62.       PPC Libraries
  63.       QuickTime
  64.       RAM Doubler
  65.     General Info
  66.       System Managers
  67.       Gestalt Problems
  68.       History
  69.       Abbreviations
  70.       Sources
  71.       Related Software
  72.       URL
  73.     Definitions and Format
  74.       Use in Language
  75.       Definitions
  76.       Format Selector Entry
  77.       Format Version Numbers
  78.     About this list
  79.       Availability
  80.       Acknowledgements
  81.       Legal Stuff
  82.       Editors' Address
  83.  
  84. Contributions
  85. -------------
  86. This section lists the people who contributed information which is now
  87. included with this version of the list.
  88.  
  89. ===========================================================================
  90. Contributions to the selector sections
  91. ===========================================================================
  92. Person                 Software                Selector(s) added/changed
  93. ---------------------------------------------------------------------------
  94. Anonymous              FileSaver cp            PNfs
  95. Martin Bestmann        System (enablers)       evnt
  96. Mike Cohen             System (enablers)       mach
  97. Mark Nagata            Dialog View cp          DlgV, LFnt
  98.                        KeyQuencer              KQae, KQue
  99. Rene G.A. Ros          Apple Guide ext         reno
  100.                        Apple Menu Options      HAM 
  101.                        AppleShare              afps
  102.                        At Ease app             pxtn
  103.                        Debugger INIT ext       NubA, NubD, NubH, NubV
  104.                        Mount'em/Drop Disk app  ddsk, mtem
  105.                        PC Exchange             vdrc
  106.                        PowerTalk Manager ext   oceu
  107.                        System (enablers)       idsp, mach, micn, proc,
  108.                                                tele
  109.                        Video Startup ext       mtv2, tv  
  110.                        WorldScript II          lang, lngb
  111. Alex Rosenberg         HAM ???                 HAM
  112.                        System (enablers)       ctbv, fxfr, icon, tabl,
  113.                                                tele, nlup
  114. Marc Schrier           System (enablers)       mach
  115. Brian Stern            SpeakAlert cp           SPAL
  116. ---------------------------------------------------------------------------
  117.  
  118. ===========================================================================
  119. Contributions to the non-selector sections
  120. ===========================================================================
  121. Person                 Chapter/Section(s)
  122. ---------------------------------------------------------------------------
  123. Rene G.A. Ros          General Info/System Managers
  124.                        General Info/Related Software
  125.                        Definitions and Format/Symbolic Names Suffixes
  126. Alex Rosenberg         Gestalt Manager Calls/Gestalt Value Routines
  127. ---------------------------------------------------------------------------
  128.  
  129. Changes Overview
  130. ----------------
  131. Added selectors
  132.   Apple System  : tele
  133.   Apple Add.    : -
  134.   Third Parties : PNfs
  135. Added unknown
  136.   Apple Softw.  : ddsk, lngb, mtv2, NubA, NubD, NubH, NubV, tv  
  137.   Third Parties : -
  138. Changed selectors
  139.   Apple System  : ctbv, fxfr, icon, mach, proc, vers
  140.   Apple Add.    : -
  141.   Third Parties : -
  142. Changed unknown
  143.   Apple Softw.  : afps, HAM , idsp, lang, mtem, pxtn, reno, vdrc
  144.   Third Parties : DlgV, KQae, KQue, LFnt
  145. Previously unknown
  146.   Apple System  : -
  147.   Apple Add.    : -
  148.   Third Parties : SPAL
  149. Includes updates 2.6.1 up to and including 2.6.2, sent to subscribers of
  150. the mailing list.
  151.  
  152. A number of chapters are now sections, which should increase the usability
  153. of the GSL when using a setext viewer (like EasyView).
  154.  
  155. The GestaltValueDispatch A-trap is implemented with System 7.5 final (not
  156. 'finally'!) and the following selectors are now installed using
  157. GestaltValue:
  158.     bugx, bugy, bugz, conn,
  159.     crm , ctbv, ditl, edtn,
  160.     fs  , fxfr, nlup, pop!,
  161.     stdf, tele, term, vers
  162.  
  163. Also, the Performa 61xx types are released and now in the appropriate part
  164. of the 'mach' entry.
  165.  
  166. Gestalt Selector Codes
  167. ======================
  168. The following sections list selector codes of which the meaning is know.
  169. For easier reading when using a setext viewer the 'Apple System Software'
  170. section has been divided into four groups grouped on the first character
  171. of the selectorcode (A-F, G-L, M-R and S-Z).
  172.  
  173. Apple System Software (A-F)
  174. ---------------------------
  175. a/ux (A/UX [2.0?])
  176.      (System [6.0.4])
  177.      gestaltAUXVersion
  178.      Returns the version of A/UX, if it is executing, as BCD?
  179.  
  180.      gestaltAUXVersion = 'a/ux'; {A/UX version, if present}
  181.  
  182.      NOTES:
  183.      If Gestalt doesn't know the answer, test bit 9 of the HWCFgFlag
  184.      system global ($0B22; Integer). if it is, assume you have A/UX 1.0.
  185.  
  186.      This selector also indicates if you're running under MAE on an
  187.      UNIX machine. *AD08
  188. addr (System [6.0.4])
  189.      gestaltAddressingModeAttr
  190.      Returns information about the current addressing mode.
  191.  
  192.      gestaltAddressingModeAttr = 'addr'; {addressing mode attributes}
  193.      gestalt32BitAddressing    = 0;      {started up with 32-bit addr.}
  194.      gestalt32BitSysZone       = 1;      {system heap has 32-bit clean}
  195.                                          {block headers}
  196.      gestalt32BitCapable       = 2;      {machine is 32-bit capable}
  197. alis (System [7.0])
  198.      (Remote Access Aliases ext [1.0?], part of Apple Remote Access)
  199.      gestaltAliasMgrAttr
  200.      Returns information about the Alias Manager.
  201.  
  202.      gestaltAliasMgrAttr                    = 'alis';{Alias Mgr attributes}
  203.      gestaltAliasMgrPresent                 = 0;
  204.      gestaltAliasMgrSupportsRemoteAppletalk = 1;     {supports Remote}
  205.                                                      {Appletalk} *AD02
  206.      gestaltAlias???                        = 2;     {since System 7.1 Pro}
  207.  
  208.      NOTE: See 'Reports' chapter (QuickTime section) for more information.
  209. ascr (AppleScript ext [1.0]) 
  210.      gestaltAppleScriptAttr *AS08
  211.      Returns information about AppleScript.
  212.  
  213.      gestaltAppleScriptAttr           = 'ascr'; {AppleScript attributes}
  214.      gestaltAppleScriptPresent        = 0;
  215.      gestaltAppleScriptPowerPCSupport = 1;
  216. ascv (AppleScript ext [1.0])
  217.      gestaltAppleScriptVersion *AS08
  218.      Returns the version of AppleScript as NumVersion.
  219.  
  220.      gestaltAppleScriptVersion = 'ascv'; {AppleScript version}
  221.      
  222.      NOTE:
  223.      AppleScript 1.1 returns $01100110 which doesn't look like a proper
  224.      version number (version 1.0 returned $01008000). (Rene Ros)
  225. atkv (System [7.0, AppleTalk 56])
  226.      gestaltATalkVersion *AT02
  227.      Returns AppleTalk version as NumVersion.
  228.  
  229.      This is different from 'atlk' !
  230.  
  231.      gestaltATalkVersion = 'atkv'; {AppleTalk version} *AD01/M01
  232.  
  233.      WARNING:
  234.      This selector returns the majorRev field of the NumVersion record as
  235.      hexadecimal instead of the usual BCD.
  236.  
  237.      NOTE: See 'Reports' chapter (AppleTalk section) for more information.
  238. atlk (System [6.0.4])
  239.      gestaltAppleTalkVersion
  240.      Returns the version of the .MPP driver as INTEGER.
  241.  
  242.      gestaltAppleTalkVersion = 'atlk'; {AppleTalk version}
  243. aucd (Audio CD Access ext [4.0], part of Apple CD-ROM Software) *AT03
  244.      gestaltAudioCDAccessVersion?
  245.      Returns Audio CD Access version as BCD.
  246.  
  247.      gestaltAudioCDAccessVersion? = 'aucd'; {Audio CD Access version}
  248.  
  249.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  250. BSDa (CloseView cp [???], by Berkeley Systems, Inc.)
  251.      gestaltCloseViewAttr
  252.      Returns information about the CloseView Control Panel.
  253.  
  254.      gestaltCloseViewAttr               = 'BSDa'; {CloseView attributes}
  255.      gestaltCloseViewEnabled            = 0;
  256.      gestaltCloseViewDisplayMgrFriendly = 1;      {Closeview compatible}
  257.                                                   {with Display Manager}
  258.                                                   {(FUTURE)} *AS05
  259. cash (System [???]) *S03
  260.      gestaltRAMCacheSize
  261.      Returns byte-size of physical RAM allocated to Disk Cache.
  262.      0 = Disk Cache Off
  263.  
  264.      gestaltRAMCacheSize = 'cash'; {RAM cache size}
  265.  
  266.      NOTE:
  267.      This selector is listed in THINK Reference 1.0 but it is unknown which
  268.      System Software version should install it.
  269. cfrg (System [7.1.2?])
  270.      gestaltCFMAttr
  271.      Returns information about the Code Fragment Manager machines.
  272.  
  273.      gestaltCFMAttr    = 'cfrg'; {Code Fragment Mgr attributes}
  274.      gestaltCFMPresent = 0;      {Code Fragment Manager is present}
  275.  
  276.      NOTE:
  277.      Don't rely on the presence of CFM along to check for a PowerMac. The
  278.      CFM will likely appear on 680x0 platforms as well. (Dave Falkenburg)
  279. conn (System [7.0])
  280.      gestaltConnMgrAttr
  281.      Returns information about the Connection Manager.
  282.  
  283.      gestaltConnMgrAttr         = 'conn'; {Conn. Mgr attributes}
  284.      gestaltConnMgrPresent      = 0;      {Connection Mgr is present}
  285.      gestaltConnMgrCMSearchFix  = 1;      {fix for CMAddSearch present}
  286.      gestaltConnMgrErrorString  = 2;      {has CMGetErrorString} *AS02
  287.      gestaltConnMgrMultiAsyncIO = 3;      {CMNewsIOPB,CMDisposeIOPB,} *AS02
  288.                                           {CMPBRead,CMPBWrite,CMPBIOKill}
  289.  
  290.      NOTE:
  291.      With System 6, this Gestalt selector isn't implemented when the
  292.      Communications Toolbox is installed. (Michael Hecht)
  293. cpkr (Color Picker ext [2.0?])
  294.      gestaltColorPickerMgrAttr
  295.      Returns information about the Color Picker Manager.
  296.  
  297.      gestaltColorPickerMgrAttr     = 'cpkr'; {ColorPicker Mgr attributes}
  298.      gestaltColorPickerMgrPresent? = 0?;     {ColorPicker Mgr Present}
  299.      (Marco Piovanelli, Lawrence D'Oliveiro)
  300.  
  301.      NOTE:
  302.      Extension version 2.0a4 returns a response ($0x0001) which is
  303.      according to the info above. Version 2.0a5 however returns $0x0100, is
  304.      this an error?
  305. cpnt (System [7.1])
  306.      (Color Picker Extension ext [2.0])
  307.      (Color Sync ext [1.0.4?])
  308.      (Macintosh Easy Open cp [1.0?])
  309.      (QuickTime ext [1.0])
  310.      (Speech Manager ext [1.1.1, not 1.2?])
  311.      gestaltComponentMgr
  312.      Returns Component Manager version as INTEGER.
  313.  
  314.      gestaltComponentMgr = 'cpnt'; {Component Mgr version} *AS01
  315. cput (System [7.1.2?]) *AS04/AS05
  316.      gestaltNativeCPUtype
  317.      Returns a value that indicates the type of native processor that is
  318.      currently running.
  319.  
  320.      gestaltNativeCPUtype = 'cput'; {Native CPU type}
  321.  
  322.      {Motorola Architecture}
  323.      gestaltCPU68000 = $0x001;
  324.      gestaltCPU68010 = $0x002;
  325.      gestaltCPU68020 = $0x003;
  326.      gestaltCPU68030 = $0x004;
  327.      gestaltCPU68040 = $0x005;
  328.      {PowerPC Architecture}
  329.      gestaltCPU601   = $0x101;
  330.      gestaltCPU603   = $0x103;
  331.      gestaltCPU604   = $0x104;
  332.      gestaltCPU620?  = ???;
  333.  
  334.      NOTE:
  335.      To check whether the native system architecture is a MC680x0 or a
  336.      PowerPC use the gestaltSysArchitecture ('sysa') selector. See for
  337.      more information on the 68K processors the gestaltProcessorType
  338.      ('proc') selector.
  339.  
  340.      The GestaltEqu.h file published with E.T.O. #12 was replaced by the
  341.      one on E.T.O. #13. However there was made a mistake, it lists the 68K
  342.      values in the range 0-4 while it should be 1-5 as listed above.
  343.      This problem is acknowledged by Apple.
  344.      You can fix this problem by using the declarations listed above or by
  345.      using the GestaltEqu.h file from E.T.O. #13 but then test first the
  346.      gestaltSysArchitecture ('sysa') selector and when it reports a 68K
  347.      machine use gestaltProcessorType.
  348.      (Dave Radcliffe, Roland Mansson, Rene Ros)
  349. crm  (System [7.0])
  350.      (Communications Toolbox for System 6)
  351.      gestaltCRMAttr
  352.      Returns information about the Communications Resource Manager.
  353.  
  354.      gestaltCRMAttr          = 'crm '; {Comm. Resource Mgr attributes}
  355.      gestaltCRMPresent       = 0;      {Comm. Resource Mgr present}
  356.      gestaltCRMPersistentFix = 1;      {fix for persistent tools} *AS02
  357.      gestaltCRMToolRsrcCalls = 2;      {has CRMGetToolResource/}  *AS02
  358.                                        {ReleaseToolResource}
  359. csvr (Control Strip cp [1.0], part of PowerBook Utilities)
  360.      gestaltControlStripVersion
  361.      Returns the version of Control Strip software that is installed as
  362.      NumVersion.
  363.  
  364.      gestaltControlStripVersion = 'csvr';
  365.  
  366.      WARNING:
  367.      Control Strip 1.0 used to install the 'sdvr' selector (which is used
  368.      by PowerTalk) instead of this selector to return the version. This is
  369.      corrected when the gestaltControlStripAttr ('sdev') selector has bit
  370.      gestaltControlStripVersionFixed set (unknown which version sets it).
  371.      No written documentation found, based on header file. *AS11 (Rene Ros)
  372.  
  373.      NOTE:
  374.      Control Strip displays a row with icons and popup menus to quickly
  375.      change settings on portable macs, i.e. AppleTalk and the sound volume.
  376. ctbm (System [7.0])
  377.      (Communications Toolbox for System 6)
  378.      gestaltCTBManagersAttr
  379.      Returns information about the Communications Toolbox Managers, it is a
  380.      bitmask of which managers are present.
  381.  
  382.      gestaltCTBManagersAttr = 'ctbm'; {Comm. Mgrs attributes} *S02
  383. ctbu (System [7.0])
  384.      (Communications Toolbox for System 6)
  385.      gestaltCTBUtilsAttr
  386.      Returns information about the Communications Toolbox Utilities.
  387.  
  388.      gestaltCTBUtilsAttr    = 'ctbu'; {Comm. TB Utils attributes} *S02
  389.      gestaltCTBUtilsPresent = 0;      *S02
  390. ctbv (System [7.0])
  391.      (Communications Toolbox for System 6)
  392.      gestaltCTBVersion
  393.      Returns the version number of the Communications Toolbox.
  394.  
  395.      gestaltCTBVersion = 'ctbv'; {Comm. Toolbox version}
  396.  
  397.      NOTE:
  398.      With the Power Macintosh the Communication Toolbox returned a Gestalt
  399.      value indicating version 1.1 while the ROM actually had version 1.0.
  400.      This is fixed by the PowerPC Enabler 1.0.1. and the PowerPC Upgrade
  401.      Card Enabler 1.0.1. because they install CTB 1.1. *AT06
  402.      As of System 7.1, the version of the CTB should track the System
  403.      version. The PowerMac ROMs handled this incorrectly and System 7.5
  404.      rectifies this by reporting 7.5.0. (Alex Rosenberg)
  405. dbac (System [7.0])
  406.      gestaltDBAccessMgrAttr
  407.      Returns information about the Data Access Manager.
  408.  
  409.      gestaltDBAccessMgrAttr    = 'dbac'; {Data Access Mgr attributes}
  410.      gestaltDBAccessMgrPresent = 0;      {TRUE if Data Access Mgr present}
  411. dfnd (PowerTalk ext [1.0?], part of System 7.1 Pro)
  412.      gestaltSDPFindVersion
  413.      Returns the SDP Find version as INTEGER.
  414.  
  415.      gestaltSDPFindVersion = 'dfnd'; {SDP Find version}
  416. dict (System [7.1])
  417.      gestaltDictionaryMgrAttr
  418.      Returns information about the Dictionary Manager.
  419.  
  420.      gestaltDictionaryMgrAttr    = 'dict'; {Dictionary Mgr attributes}
  421.      gestaltDictionaryMgrPresent = 0;
  422. ditl (System [7.0])
  423.      gestaltDITLExtAttr
  424.      Returns information about the Dialog Manager.
  425.  
  426.      gestaltDITLExtAttr    = 'ditl'; {Dialog Mgr attributes}
  427.      gestaltDITLExtPresent = 0;      {Dialog Mgr extensions present}
  428. dplv (System [7.1.1]) *AS05
  429.      gestaltDisplayMgrVers
  430.      Returns Display Manager version as INTEGER?.
  431.  
  432.      gestaltDisplayMgrVers = 'dplv'; {Display Mgr version}
  433. dply (System [7.1.1]) *AS05
  434.      gestaltDisplayMgrAttr
  435.      Returns information about the Display Manager.
  436.  
  437.      gestaltDisplayMgrAttr = 'dply'; {Display Mgr attributes}
  438.      gestaltDisplayMgrPresent = 0;   {True if Display Mgr is present}
  439.      gestalt???               = 1;
  440. drag (Macintosh Drag and Drop ext [1.0])
  441.      gestaltDragMgrAttr *AD05
  442.      Returns information about the Drag Manager.
  443.  
  444.      gestaltDragMgrAttr         = 'drag'; {Drag Manager attributes}
  445.      gestaltDragMgrPresent      =  0;     {Drag Manager is present}
  446.      gestaltDragMgrFloatingWind =  1;     *AS09
  447.      gestaltPPCDragLibPresent   =  2;     *AS09
  448.      gestalt???                 = 31;
  449. dsig (PowerTalk ext [1.0?], part of System 7.1 Pro)
  450.      gestaltDigitalSignatureVersion
  451.      Returns version of the Digital Signature toolbox as BCD.
  452.  
  453.      gestaltDigitalSignatureVersion = 'dsig'; {Digitial Signature version}
  454. eajt (Easy Access cp [7.0])
  455.      gestaltEasyAccessJTable
  456.      Returns the base address of the Easy Access jump-trap table.
  457.  
  458.      gestaltEasyAccessJTable = 'eajt'; {Easy Access jump-trap table} *M01
  459. easy (Easy Access cp [6.0.4?])
  460.      gestaltEasyAccessAttr
  461.      Returns information about the status of Easy Access.
  462.  
  463.      gestaltEasyAccessAttr   = 'easy'; {Easy Access attributes}
  464.      gestaltEasyAccessOff    = 0;      {Easy Access present but off}
  465.      gestaltEasyAccessOn     = 1;      {Easy Access on}
  466.      gestaltEasyAccessSticky = 2;      {Easy Access "Sticky"}
  467.      gestaltEasyAccessLocked = 3;      {Easy Access "Locked"}
  468.  
  469.      NOTE:
  470.      The values listed above are not returned with System 7 and later.
  471.      Because of a bug different values are returned. This problem is
  472.      acknowledged by Apple, but it is unclear when it will be fixed. They
  473.      know about it since September 1992... (Rene Ros)
  474. edtn (System [7.0])
  475.      (Macintosh Easy Open cp [1.0?])
  476.      gestaltEditionMgrAttr
  477.      Returns information about the Edition Manager.
  478.  
  479.      gestaltEditionMgrAttr             = 'edtn'; {Edition Mgr attributes}
  480.      gestaltEditionMgrPresent          = 0;
  481.      gestaltEditionMgrTranslationAware = 1;      *AD03
  482. evnt (System [7.0]) *AS05
  483.      (Apple Event Manager ext [1.0.1], part of AppleScript Setup)
  484.      gestaltAppleEventsAttr
  485.      Returns information about Apple Events.
  486.  
  487.      gestaltAppleEventsAttr     = 'evnt'; {Apple events attributes}
  488.      gestaltAppleEventsPresent  = 0;      {True if Apple Events present}
  489.                                           *AS05
  490.      gestaltScriptingSupport    = 1;
  491.      gestaltOSLInSystem         = 2;      {OSL is in system so don`t use}
  492.                                           {the one linked}
  493.  
  494.      NOTE:
  495.      These declarations in the AEObjects.h file (on ETO 14) should be
  496.      ignored:
  497.      gestaltObjectSupportLibraryInSystem = 1,
  498.      gestaltObjectSupportLibraryPowerPCSupport = 2
  499. flag (Network Extension ext [System 7.0 *AT02])
  500.      gestaltFlagshipAttr
  501.      Returns information about the Flagship.
  502.  
  503.      gestaltFlagshipAttr       = 'flag'; *M01
  504.      gestaltFlagshipPresent    = 0;      *M01
  505.      gestaltFlagshipRegistered = 1;      *M01
  506. fndr (Finder [7.1.1]) *AS04
  507.      gestaltFinderAttr
  508.      Returns information about the Finder.
  509.  
  510.      gestaltFinderAttr               = 'fndr';
  511.      gestaltFinderDropEvent          = 0;
  512.      gestaltFinderMagicPlacement     = 1;
  513.      gestaltFinderCallsAEProcess     = 2;
  514.      gestaltOSLCompliantFinder       = 3;
  515.      gestaltFinderSupports4GBVolumes = 4;
  516.      gestaltFinderHandlesCFMFailures = 5;
  517.      gestaltFinderHasClippings       = 6;      *AD12
  518. fold (System [7.0])
  519.      gestaltFindFolderAttr
  520.      Returns information about the FindFolder function.
  521.  
  522.      gestaltFindFolderAttr    = 'fold'; {FindFolder attributes}
  523.      gestaltFindFolderPresent = 0;      {FindFolder function available}
  524. font (System [7.0])
  525.      (TrueType INIT ext for System 6)
  526.      gestaltFontMgrAttr
  527.      Returns information about the Font Manager.
  528.  
  529.      gestaltFontMgrAttr      = 'font'; {Font Mgr attributes}
  530.      gestaltOutlineFonts     = 0;
  531.      gestalt???              = 1;      {set with System 7.1 & 7.5}
  532.      gestaltDiskCachedFonts? = 2;      {Disk Cached Fonts available?}
  533.  
  534.      NOTE:
  535.      Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
  536.      with full subroutine names, there is a subroutine called
  537.      'DiskChachedFontsAvailable' in an INIT resource which checks bit 2
  538.      of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
  539. fpu  (System [6.0.4])
  540.      gestaltFPUType
  541.      Returns a value that indicates the FPU-type, if any.
  542.  
  543.      gestaltFPUType  = 'fpu '; {FPU Type}
  544.      gestaltNoFPU    = 0;      {no FPU}
  545.      gestalt68881    = 1;      {68881 FPU}
  546.      gestalt68882    = 2;      {68882 FPU}
  547.      gestalt68040FPU = 3;      {built-in 68040 FPU} *S01
  548.  
  549.      NOTE: See also the 'FPUE' entry with the Third Parties section.
  550. fs   (720K Floppy Disk Formatter ext [1.0a3?],
  551.       part of the Hardware System Update [2.0])
  552.      (Apple Share ext [AS 3.0/SYS 7.0])
  553.      (File System Manager ext [1.2])
  554.      (System [7.0])
  555.      gestaltFSAttr
  556.      Returns information about the file system.
  557.  
  558.      gestaltFSAttr               = 'fs  '; {file-system attributes}
  559.      gestaltFullExtFSDispatching = 0;      {exports HFSDispatch traps}
  560.      gestaltHasFSSpecCalls       = 1;      {supports FSSpec records}
  561.      gestaltHasFileSystemManager = 2;      {has the File System Manager}
  562.                                            *S01
  563.      gestaltFSMDoesDynamicLoad   = 3;      {FSM supports dynamic loads}
  564.                                            *AD12
  565.      gestaltFSSupports4GBVols    = 4;      {FS supports 4 gigabyte volumes}
  566.                                            *AD14
  567.      gestaltFSSupports2TBVols    = 5;      {FS supports 2 terabyte volumes}
  568.                                            *AD14
  569.      gestaltHasExtendedDiskInit  = 6;      {has extended Disk}
  570.                                            {Initialization calls} *AD12
  571.  
  572.      NOTES:
  573.      See 'Reports' chapter (QuickTime section) for more information.
  574. fxfr (System [7.0])
  575.      gestaltFXfrMgrAttr
  576.      Returns information about the File Transfer Manager.
  577.  
  578.      gestaltFXfrMgrAttr        = 'fxfr'; {File Transfer Mgr attributes}
  579.      gestaltFXfrMgrPresent     = 0;      {File Transfer Mgr present}
  580.      gestaltFXfrMgrMultiFile   = 1;      {supports FTSend and FTReceive}
  581.                                          *AS02
  582.      gestaltFXfrMgrErrorString = 2;      {supports FTGetErrorString}
  583.                                          *AS02/S02
  584.      gestalt???                = 3?;     {new, see future technote}
  585.  
  586. Apple System Software (G-L)
  587. ---------------------------
  588. gval (GestaltValue Glue code)
  589.      (System [8.0?])
  590.      gestaltValueTable?
  591.      Returns a pointer to a table with the selectors and values managed
  592.      by the GestaltValue code. (Marco Piovanelli)
  593.  
  594.      gestaltValueTable? = 'gval';
  595.  
  596.      WARNING:
  597.      Although this information isn't officially confirmed, it is probably
  598.      correct.
  599.  
  600.      NOTE:
  601.      See 'Reports' chapter (GestaltValue section) for more information.
  602. hdwr (System [6.0.4]) INF
  603.      gestaltHardwareAttr
  604.      Returns information about the hardware configuration of the machine.
  605.  
  606.      gestaltHardwareAttr    = 'hdwr'; {hardware attributes}
  607.      gestaltHasVIA1         =  0;     {VIA 1}
  608.      gestaltHasVIA2         =  1;     {VIA 2}
  609.      gestaltHasRBV          =  2;     {RBV}                           *M01
  610.      gestaltHasASC          =  3;     {ASC}
  611.      gestaltHasSCC          =  4;     {SCC}
  612.      gestaltHasOSS          =  5;     {OSS}                           *M01
  613.      gestaltHasSCSIDMA      =  6;     {53C80 SCSI DMA}                *M01
  614.      gestaltHasSCSI         =  7;     {SCSI}
  615.      gestaltHasSWIMIOP      =  8;     {SWIM IOP}                      *M01
  616.      gestaltHasSCCIOP       =  9;     {SCC IOP}                       *M01
  617.      gestaltHasFitch        = 10;     {Fitch memory Controller}       *M02
  618.      gestaltHasIWM          = 11;     {IWM}                           *M01
  619.      gestaltHasPWM          = 12;     {PWM disk speed buffer}         *M02
  620.      gestaltHasRAMSndBuff   = 13;     {RAM-based sound buffer}        *M02
  621.      gestaltHasVideoDAConv  = 14;     {Video D/A Converter}           *M02
  622.      gestaltHasPGC          = 15;     {PGC (parity control)}          *M02
  623.      gestaltHasRPU?         = 16;     {Random Parity Unit}
  624.      gestaltHasOMC?         = 17;     {Orwell Memory Controller}
  625.      gestaltHasVISARBV?     = 18;     {VISA Ram Based Video}
  626.      gestaltHasSoftPowerOff = 19;     {Software PowerOff (since 7.0?)}*S01
  627.      gestaltHasSonic        = 20;     {Sonic (built-in ethernet)}     *M01
  628.      gestaltHasSCSI961      = 21;     {Int. 53C96 SCSI}               *AT01
  629.      gestaltHasSCSI962      = 22;     {Ext. 53C96 SCSI}               *AT01
  630.      gestaltHasDAFBVideo    = 23;     {DAFB Video}                    *M01
  631.      gestaltHasUniversalROM = 24;     {Universal ROM}                 *AT04
  632.      gestaltHas???          = 27;     {set on PowerMac and C660AV}
  633.      gestaltHas???          = 30;     {set on C660AV, DSP?}
  634.  
  635.      gestaltHasDSP?         = ??;     {Digital Signal Processor}
  636.      gestaltHasEASC?        = ??;     {Enhanced Apple Sound Chip}
  637.      gestaltHasFWSCSI?      = ??;     {Fast and Wide SCSI}
  638.      gestaltHasGraphic?     = ??;     {Apple Graphics coprocessor}
  639.      gestaltHasJaws?        = ??;     {JMC}
  640.      gestaltHasSCSI2?       = ??;     {SCSI 2}
  641.  
  642.      NOTES:
  643.      See for additional information the TN "M.OV.GestaltSysenvirons" (OV 16).
  644.  
  645.      On the Mac IIfx and Quadra 900 the gestaltHasSCC bit always returns 0
  646.      because the SCC is isolated by I/O processors. When the Compatibility
  647.      Switch control panel is used the bit is set. *AD12
  648.  
  649.      The old IM VI listed this selector as an environmental selector but
  650.      IM OS Utilities now lists it as an informational selector.
  651. help (System [7.0])
  652.      gestaltHelpMgrAttr
  653.      Returns information about the Help Manager.
  654.  
  655.      gestaltHelpMgrAttr       = 'help'; {Help Mgr attributes}
  656.      gestaltHelpMgrPresent    =  0;     {Help Mgr present}
  657.      gestaltHelpMgrExtensions =  1;     {Help Mgr extensions installed}
  658.                                         *AS03
  659.      gestaltAppleGuideIsDebug = 30;     {Apple Guide is debugging version}
  660.                                         *AS12
  661.      gestaltAppleGuidePresent = 31;     {Apple Guide is available} *AS12
  662. hscd (High Sierra File Access ext [5.0], part of Apple CD-ROM Software and
  663.       System 7.5) 
  664.      (ISO 9660 File Access ext [1.0-4.0], part of Apple CD-ROM Software)
  665.      gestaltHighSierraFAVersion? *AT03
  666.      Returns High Sierra File Access version in BCD.
  667.  
  668.      gestaltHighSierraFAVersion? = 'hscd'; {High Sierra Fileaccess version}
  669.  
  670.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  671. icmp (QuickTime ext [1.0])
  672.      gestaltCompressionMgr
  673.      Returns Compression Manager version as Integer.
  674.  
  675.      gestaltCompressionMgr = 'icmp'; {determines if Image Compression}
  676.                                      {manager is available} *AS01
  677. icon (System [7.1.2])
  678.      gestaltIconUtilities
  679.      Returns information about the Icon Utilities routines.
  680.  
  681.      gestaltIconUtilities        = 'icon'; {Icon Utils attributes}
  682.      gestaltIconUtilitiesPresent = 0;
  683.  
  684.      NOTE:
  685.      This selector is supposed to be implemented since System 7.1.2. You
  686.      need to determine if the _IconDispatch A-trap ($AB49) is available
  687.      instead since the Icon Utilities are actually available since
  688.      System 7.0. *AD13/AT01
  689. intd (Powerbook Duo Enabler [1.0])
  690.      (System [7.5])
  691.      (System Enabler 111 [1.0])
  692.      (System Enabler 121 [1.0])
  693.      (System Enabler 131 [1.0])
  694.      (System Enabler 201 [1.0])
  695.      gestaltInternalDiskAttr?
  696.      Returns information about the internal harddisk of portable
  697.      computers?
  698.  
  699.      gestaltInternalDiskAttr? = 'intd'; {PB Internal HD attributes}
  700.      gestaltHasInternalDisk?  =  0;     {TRUE if machine has internal HD}
  701.      gestaltDiskSpinning?     =  1;     {TRUE if internal HD is spon up}
  702.      gestalt???               = 24;     {unknown, set on PB180, PB210,}
  703.                                         {PB540}
  704.  
  705.      WARNING:
  706.      This information is from a reliable source. However, is it not
  707.      officially confirmed by Apple and there are no constants defined.
  708.  
  709.      NOTE:
  710.      On a PB Duo 210 (PowerBook Duo Enabler) I haven't seen bit 1 set, even
  711.      when the disk is spinning. It is also reported the bit is clear when
  712.      the disk is spinning and set when down (seen on PB Duo 230).
  713.      (David Lewis, Rene Ros)
  714. iscd (ISO 9660 File Access ext [5.0], part of Apple CD-ROM Software and
  715.       System 7.5)
  716.      gestaltISO9660FAVersion?
  717.      Returns ISO 9660 File Access version in BCD?.
  718.  
  719.      gestaltISO9660FAVersion? = 'iscd';
  720.  
  721.      NOTE:
  722.      Versions before 5.0 installed the 'hscd' selector.
  723. kbd  (System [6.0.4])
  724.      gestaltKeyboardType
  725.      Returns a value that indicates the type of keyboard on which the last
  726.      keystroke was seen.
  727.  
  728.      gestaltKeyboardType      = 'kbd '; {keyboard type}
  729.      gestaltMacKbd            =  1;     {Macintosh Keyboard}
  730.      gestaltMacAndPad         =  2;     {Macintosh Keyboard with Pad}
  731.      gestaltMacPlusKbd        =  3;     {Macintosh Plus Keyboard}
  732.      gestaltExtADBKbd         =  4;     {Extended ADB Keyboard}
  733.      gestaltStdADBKbd         =  5;     {Standard ADB Keyboard}
  734.      gestaltPrtblADBKbd       =  6;     {Portable ADB Keyboard}
  735.      gestaltPrtblISOKbd       =  7;     {Portable ISO ADB Keyboard}
  736.      gestaltStdISOADBKbd      =  8;     {Standard ISO ADB Keyboard}
  737.      gestaltExtISOADBKbd      =  9;     {Extended ISO ADB Keyboard}
  738.      gestaltADBKbdII          = 10;     {ADB Keyboard II}
  739.      gestaltADBISOKbdII       = 11;     {ISO ADB Keyboard II}
  740.      gestaltPwrBookADBKbd     = 12;     {PowerBook Keyboard}          *AT01
  741.      gestaltPwrBookISOADBKbd  = 13;     {PowerBook Keyboard (ISO)}    *AT01
  742.      gestaltAppleAdjustKeypad = 14;     {Apple Adjustable Keypad}     *AT01
  743.      gestaltAppleAdjustADBKbd = 15;     {Apple Adjustable Keyboard}
  744.                                         {incl. US, ISO and Japanese}  *AT01
  745.  
  746.      gestalt???               = ??;     {new AppleDesign extended kbd.}
  747.      gestalt???               = 24;     {reported to be returned on PB 5xx}
  748.                                         {other report says these return 11}
  749.  
  750.      ======================================================================
  751.      Combinations of System Global KbdType/ADB Mgr devType and
  752.      gestaltKeyboardType values                                       *AT01
  753.      ======================================================================
  754.      KbdType    gestaltKeyboardType     Gestalt Name
  755.      (hex.)     (decimal)
  756.      ----------------------------------------------------------------------
  757.        $03          1                   gestaltMacKbd
  758.        $13          2                   gestaltMacAndPad
  759.        $0B          3                   gestaltMacPlusKbd
  760.        $02          4                   gestaltExtADBKbd
  761.        $01          5                   gestaltStdADBKbd
  762.        $06          6                   gestaltPrtblADBKbd
  763.        $07          7                   gestaltPrtblISOKbd
  764.        $04          8                   gestaltStdISOADBKbd
  765.        $05          9                   gestaltExtISOADBKbd
  766.        $08         10                   gestaltADBKbdII
  767.        $09         11                   gestaltADBISOKbdII
  768.        $0C         12                   gestaltPwrBookADBKbd
  769.        $0D         13                   gestaltPwrBookISOADBKbd
  770.        $0E         14                   gestaltAppleAdjustKeypad
  771.        $10         15                   gestaltAppleAdjustADBKbd, US
  772.        $11         15                   gestaltAppleAdjustADBKbd, ISO
  773.        $12         15                   gestaltAppleAdjustADBKbd, Japanese
  774.      ----------------------------------------------------------------------
  775.  
  776.      NOTES:
  777.      The Apple Adjustable Keyboard doesn't has its own Gestalt keyboard
  778.      type defined with the some versions of System Software (7.1?). It
  779.      changes a low memory global but this doesn't change the Gestalt
  780.      response. This problem is corrected by the Hardware System Update 2.0
  781.      or later.
  782.  
  783.      The PowerMac 7100/66 doesn't install this selector for some reason.
  784.      Other Macs with Gestalt version 4 do, so it isn't intentional.
  785.  
  786.      Since this selector returns the type of the keyboard last touched
  787.      and because there can be more than one keyboard, MacDTS considers this
  788.      selector to be obsolete. You should use GetADBInfo instead and check
  789.      the orgADBAddr field for a keyboard (0x02) and the devType field
  790.      contains the keyboard device type. It uses the same values as the
  791.      KbdType low memory variable, see the table above. *AD07/AT01
  792. kpcd (Apple Photo Access ext [1.0], part of Apple CD-ROM Software) *AT03
  793.      gestaltApplePhotoAccessVersion?
  794.      Returns Apple Phote Access version in BCD.
  795.  
  796.      gestaltApplePhotoAccessVersion? = 'kpcd';
  797.  
  798.      NOTE:
  799.      The above is what the documentation says. However it seems to return
  800.      always $FFFFFF7 as response.
  801. lram (System [6.0.4])
  802.      (RAM Doubler [1.0] by Connectix Corporation)
  803.      gestaltLogicalRAMSize
  804.      Returns the amount of logical memory available in bytes.
  805.  
  806.      gestaltLogicalRAMSize = 'lram'; {logical RAM size}
  807. lmem (System [6.0.4])
  808.      gestaltLowMemorySize
  809.      Returns the amount of the low-memory area in bytes.
  810.  
  811.      gestaltLowMemorySize = 'lmem'; {low-memory area size}
  812.  
  813. Apple System Software (M-R)
  814. ---------------------------
  815. mach (System [6.0.4]) INF
  816.      gestaltMachineType
  817.      Returns one of the following values, indicating the type of
  818.      machine.
  819.  
  820.      RELEASED
  821.      gestaltMachineType       = 'mach'; {machine type}
  822.      gestaltClassic           =   1;    {Macintosh 128K}
  823.      gestaltMacXL             =   2;    {Macintosh XL}
  824.      gestaltMac512KE          =   3;    {Macintosh 512KE}
  825.      gestaltMacPlus           =   4;    {Macintosh Plus}
  826.      gestaltMacSE             =   5;    {Macintosh SE}
  827.      gestaltMacII             =   6;    {Macintosh II}
  828.      gestaltMacIIx            =   7;    {Macintosh IIx}
  829.      gestaltMacIIcx           =   8;    {Macintosh IIcx}
  830.      gestaltMacSE030          =   9;    {Macintosh SE/30}
  831.      gestaltPortable          =  10;    {Macintosh Portable}
  832.      gestaltMacIIci           =  11;    {Macintosh IIci}
  833.      gestaltMacIIfx           =  13;    {Macintosh IIfx}
  834.      gestaltMacClassic        =  17;    {Macintosh Classic}
  835.      gestaltMacIIsi           =  18;    {Macintosh IIsi}
  836.      gestaltMacLC             =  19;    {Macintosh LC}
  837.      gestaltQuadra900         =  20;    {Macintosh Quadra 900}        *AT01
  838.      gestaltPowerBook170      =  21;    {Macintosh PowerBook 170}     *AT01
  839.      gestaltQuadra700         =  22;    {Macintosh Quadra 700}        *AT01
  840.      gestaltClassicII         =  23;    {Macintosh Classic II}        *AT01
  841.      gestaltPowerBook100      =  24;    {Macintosh PowerBook 100}     *AT01
  842.      gestaltPowerBook140      =  25;    {Macintosh PowerBook 140}     *AT01
  843.      gestaltQuadra950         =  26;    {Macintosh Quadra 950}        *AT01
  844.      gestaltMacLCIII          =  27;    {Macintosh LC III}
  845.      gestaltPowerBook210      =  29;    {Macintosh PowerBook 210}
  846.      gestaltMacCentris650     =  30;    {Macintosh Centris 650}
  847.      gestaltPowerBook230      =  32;    {Macintosh PowerBook 230}
  848.      gestaltPowerBook180      =  33;    {Macintosh PowerBook 180}
  849.      gestaltPowerBook160      =  34;    {Macintosh PowerBook 160}
  850.      gestaltMacQuadra800      =  35;    {Macintosh Quadra 800}
  851.      gestaltMacQuadra650      =  36;    {Macintosh Quadra 650}        *AT01
  852.      gestaltMacLCII           =  37;    {Macintosh LC II}
  853.      gestaltPowerBookDuo250   =  38;    {Macintosh PowerBook Duo 250} *AT01
  854.      gestaltPowerMac9150      =  39;    {Power Macintosh 9150}        *AT01
  855.      gestaltMacIIvi           =  44;    {Macintosh IIvi}
  856.      gestaltPerforma600       =  45;    {Macintosh Performa 600}
  857.      gestaltMacIIvx           =  48;    {Macintosh IIvx}
  858.      gestaltMacColorClassic   =  49;    {Macintosh Color Classic}
  859.      gestaltPowerBook165c     =  50;    {Macintosh PowerBook 165c}
  860.      gestaltMacCentris610     =  52;    {Macintosh Centris 610}
  861.      gestaltMacQuadra610      =  53;    {Macintosh Quadra 610}        *AT01
  862.      gestaltPowerBook145      =  54;    {Macintosh PowerBook 145 & 145b}
  863.                                         *AT01
  864.      gestaltMacLC520          =  56;    {Macintosh LC 520}            *AT01
  865.      gestaltMacCentris660AV   =  60;    {Macintosh Centris 660AV}     *AT01
  866.      gestaltPerforma460       =  62;    {Macintosh Performa 460}
  867.      gestaltPowerMac8100_80   =  65;    {Power Macintosh 8100/80}
  868.      gestaltPowerBook180c     =  71;    {Macintosh PowerBook 180c}    *AT01
  869.      gestaltPowerBook520_540  =  72;    {Macintosh PowerBook 520, 520c,}
  870.                                         {540 & 540c}
  871.                                         {use MaximumProcessorSpeed from}
  872.                                         {Power Mgr. 25 and 33 resp.}  *AT01
  873.      gestaltPowerMac6100_60   =  75;    {Power Macintosh 6100/60}
  874.      gestaltPowerBookDuo270c  =  77;    {Macintosh PowerBook Duo 270c}*AT01
  875.      gestaltMacQuadra840AV    =  78;    {Macintosh Quadra 840AV}      *AT01
  876.      gestaltMacLC550          =  80;    {Macintosh LC 550}            *AT01
  877.      gestaltPowerBook165      =  84;    {Macintosh PowerBook 165}     *AT01
  878.      gestaltMacTV             =  88;    {Macintosh TV}
  879.      gestaltMacLC475          =  89;    {Macintosh LC 475}            *AT01
  880.      gestaltMacLC575          =  92;    {Macintosh LC 575}            *AT01
  881.      gestaltMacQuadra605      =  94;    {Macintosh Quadra 605}        *AT01
  882.      gestaltMacLC630          =  98;    {Macintosh LC 630, see below} *AT01
  883.      gestaltMacQuadra630      =  98;    {Macintosh Quadra 630}        *AT01
  884.                                         {Q630 has MC68040, LC 630 has}
  885.                                         {MC68LC040 but can upgrade}
  886.      gestaltPowerBookDuo280   = 102;    {Macintosh PowerBook Duo 280}
  887.      gestaltPowerBookDuo280c  = 103;    {Macintosh PowerBook Duo 280c}
  888.      gestaltPowerMac7100_66   = 112;    {Power Macintosh 7100/66}
  889.      gestaltPowerBook150      = 115;    {Macintosh PowerBook 150}
  890.      gestaltPowerMacQ700?     = 116;    {Quadra 700 upgrade card?}
  891.      gestaltPowerMacQ900?     = 117;    {Quadra 900 upgrade card?}
  892.      gestaltPowerMacQ950?     = 118;    {Quadra 950 upgrade card?}
  893.      gestaltPowerMacC610?     = 119;    {Centris 610 upgrade card?}
  894.      gestaltPowerMacC650?     = 120;    {Centris 650 upgrade card?}
  895.      gestaltPowerMacQ610?     = 121;    {Quadra 610 upgrade card?}
  896.      gestaltPowerMacQ650?     = 122;    {Quadra 650 upgrade card?}
  897.      gestaltPowerMacQ800?     = 123;    {Quadra 800 upgrade card?}
  898.  
  899.      Exceptions with systems prior to System 7.1:
  900.      gestaltMacLCII           =  19;    {Macintosh LC & LC II}
  901.                                         {LC has MC68020,LC II has MC68030}
  902.      gestaltPowerBook145      =  25;    {Macintosh PowerBook 140 & 145}
  903.                                         {use GetCPUSpeed from}
  904.                                         {Power Mgr? 16 and 25 resp.}
  905.  
  906.      Released unknown
  907.      gestaltPowerMac8100_110? =  66?;   {Power Macintosh 8100/110 (soon!)}
  908.  
  909.      Relabeled
  910.      Performa 200             = gestaltClassicII
  911.      Performa 250             = gestaltMacColorClassic
  912.                                 (sold in Australia & Britain)
  913.      Performa 400             = gestaltMacLCII
  914.      Performa 405             = gestaltMacLCII
  915.      Performa 410             = gestaltMacLCII
  916.      Performa 430             = gestaltMacLCII
  917.      Performa 450             = gestaltMacLCIII
  918.      Performa 466             = gestaltMacLCIII
  919.      Performa 467             = gestaltMacLCIII
  920.      Performa 475             = gestaltMacLC475
  921.      Performa 476             = gestaltMacLC475
  922.      Performa 550             = gestaltMacLC550
  923.      Performa 560MM           = gestaltMacLC550
  924.      Performa 575             = gestaltMacLC575
  925.      Performa 577             = gestaltMacLC575
  926.      Performa 578             = gestaltMacLC575
  927.      Performa 600             = gestaltMacIIvx
  928.      Performa 630             = gestaltMac630?
  929.      Performa 635             = gestaltMac630?
  930.      Performa 636             = gestaltMac630?
  931.      Performa 638CDV          = gestaltMac630?
  932.      Performa 6110CD          = gestaltPowerMac6100_60 ?
  933.      Performa 6112CD          = gestaltPowerMac6100_60 ?
  934.      Performa 6115CD          = gestaltPowerMac6100_60 ?
  935.      Performa 6117CD          = gestaltPowerMac6100_60 ?
  936.      Performa 6118CD          = gestaltPowerMac6100_60 ?
  937.      PowerMac 6100/60AV       = gestaltPowerMac6100_60
  938.      PowerMac 7100/66AV       = gestaltPowerMac7100_66
  939.      PowerMac 8100/80AV       = gestaltPowerMac8100_80
  940.      PowerMac WGS 6150        = gestaltPowerMac6100_60 ?
  941.      PowerMac WGS 8150        = gestaltPowerMac8100_80 ?
  942.      PowerMac WGS 9150        = gestaltPowerMac9100_?? ?
  943.      Quadra 660AV             = gestaltMacCentris660AV
  944.      Workgroup Server 60      = gestaltMacCentris610
  945.      Workgroup Server 80      = gestaltMacQuadra800
  946.      Workgroup Server 95      = gestaltQuadra950
  947.      Workgroup Server 95+     = gestaltQuadra950
  948.  
  949.      UNRELEASED (RUMOURED / PRERELEASES)
  950.      gestaltPowerMac8100_60?  =  61;    {Power Macintosh 8100/80 when}
  951.                                         { actually running at 60 MHz}
  952.                                         { (value found experimentally)}
  953.      gestaltPowerMac8100_60?  =  64;    {Power Macintosh 8100/60 but also}
  954.                                         {Power Macintosh 8100/80 when}
  955.                                         { actually running at 66.6 MHz}
  956.                                         { (value from PowerPC Enabler)}
  957.      gestaltPowerMac8100_100? =  66;    {Power Macintosh 8100/100 (Nov.94)}
  958.      gestaltPowerMac6100_66?  = 100;    {Power Macintosh 6100/66 (Nov.94)}
  959.      gestaltPowerMac6100_80?  = 101;    {Power Macintosh 6100/80}
  960.      gestaltPowerMac7100_60?  = 111;    {Power Macintosh 7100/60}
  961.      gestaltPowerMac7100_80?  = 113;    {Power Macintosh 7100/80 (Nov.94)}
  962.  
  963.      Unreleased unknown
  964.      gestaltPomona???         = ???;    {unknown, codename Pomona?}
  965.      Pomona is probably the codename of a new line of home and business
  966.      machines scheduled for early 1995, with three models:
  967.        gestalt???               = ???
  968.        gestalt???               = ???
  969.        gestalt???               = ???
  970.      gestalt???               =  43;    {unknown, pre-rel. Tempest/Cyclone}
  971.      gestaltAlchemy?          = ???;    {unknown, codename Alchemy}
  972.      gestaltCatalyst?         = ???;    {unknown, codename Catalyst}
  973.      gestaltNitro?            = ???;    {unknown, codename Nitro}
  974.      gestaltPowerBookDuo2300? = ???;    {PowerBook Duo 2300 (or AJ?) with}
  975.                                         {PPC 603? (May 95)}
  976.      gestaltPowerBookDuo2300c?= ???;    {PowerBook Duo color (or AJc?) with
  977.                                         {PPC 603? (May 95)}
  978.      gestaltPowerBook603?     = ???;    {Macintosh PowerBook with PPC 603?}
  979.                                         {June 95}
  980.      gestaltTNTPowerMacsHP?   = ???;    {TNT PowerMac, High Perf.?}
  981.      gestaltTNTPowerMacsGW?   = ???;    {TNT PowerMac, Graphics Workstation?}
  982.      gestaltTsunami?          = ???;    {unknown, codename Tsunami}
  983.  
  984.      Relabeled
  985.      -
  986.  
  987.      NOTES:
  988.      The Power Macintosh computers also set the three low bits of a 32-bit
  989.      register at address $5FFF FFFC to a machine identification code.
  990.  
  991.      ======================================================================
  992.      Power Macintosh register identification codes
  993.      ======================================================================
  994.      Machine                     Register bits
  995.      ----------------------------------------------------------------------
  996.      Power Macintosh 6100        000
  997.      Power Macintosh 7100        010
  998.      Power Macintosh 8100        011
  999.      ----------------------------------------------------------------------
  1000.  
  1001.      An upgraded Centris 610 doesn't return 119 (Centris 610 upgrade card?)
  1002.      but 75 (PowerMac 6100). (Carl R. Osterwald)
  1003.      With an upgraded Quadra 700 the upgrade card value is returned. The
  1004.      values for the upgrade cards came from the kMachineNameStrID resource
  1005.      from the Power Mac Upgrade Card enabler distributed with System
  1006.      Update 3.0 on disk 2. The Power Macintosh Card 1.0 control panel
  1007.      checks both the Quadra/Centris machine IDs and the ones for the
  1008.      upgrade cards to determine if it can run. (Rene Ros)
  1009.      When a PowerMac is clock-chipped it changes the machine type ID it
  1010.      returns. This has been observed with a PM 6100/60 which was chipped to
  1011.      80 MHz and higher, it returned 101 which belongs to a PM 6100/80
  1012.      (Mike Cohen). Even funnier is a 8100AV (standard at 80 MHz) which
  1013.      returns 64 ("8100/60") with a clockspeed of 66.6 MHz, but 61 (???)
  1014.      and no name in the 'About this Macintosh' window at 60 MHz.
  1015.      And an Centris 650 can be changed into a Quadra 650 by a resistor
  1016.      swap.
  1017.      (Marc Schrier, the 'clock-chipping' guy who was experimenting a bit
  1018.      but most of the time he is speeding them up...).
  1019.  
  1020.      The Performa 600 was originally planned to ship as Macintosh IIvm
  1021.      but the name was changed because users thought 'vm' meant 'Virtual
  1022.      Memory'. MOST system enablers (i.e. 001, 040, 065 & 201) still
  1023.      contain this original name.
  1024.  
  1025.      The Developer Notes (available from APDA, on ftp.apple.com and on the
  1026.      Developer CD-ROM Series) about some PowerBook models (100/140/170)
  1027.      provide incorrect information regarding the machine type returned by
  1028.      the Gestalt Manager.
  1029.  
  1030.      You can use the returned value as an index with GetIndString
  1031.      to get the machine's name. The STR# resource ID is:
  1032.      kMachineNameStrID       = -16395;
  1033.  
  1034.      On Macintosh Performas, the Machine Name STR# resource will always
  1035.      return the string "Macintosh" (not "Macintosh Performa 450" or
  1036.      "Performa 450").  On all other Macintoshes, the string will return
  1037.      the correct name. (Mark Dawson)
  1038.      [But] if you do a dirty install [of System 7.5 or later] (right on top
  1039.      of an existing, pre-7.5 System), your machine type and icon will be
  1040.      preserved. If you do a clean install, you'll get the generic name/icon
  1041.      in the Finder's "About This Macintosh..." dialog. (Tim Swihart)
  1042.      This can be fixed by using the freeware Mac Identifier extension from
  1043.      Flux Software, written by Maurice Volaski. See the 'Related Software'
  1044.      section of the 'General Info' chapter for availability. (Rene Ros)
  1045.      In the future ID's will be reused and the kMachineNameStrID will
  1046.      contain only the text '  Macintosh' (two spaces first) *AT01
  1047.      Why, oh why? (Rene Ros)
  1048.  
  1049.      All system enablers have a STR# resource -16395 (kMachineNameStrID)
  1050.      included to replace the one in the System file. In most cases this
  1051.      resource lists the same Macintosh names as the original one in
  1052.      System 7.1 and adds the names of the machines the enabler is intended
  1053.      for. But some only list the machines the enabler is used with.
  1054.      Therefore, if you want to display the name of a machine which isn't
  1055.      of the current machine type you can't rely on this resource anymore.
  1056.      Using the archive mail server you can obtain a ResEdit file with the
  1057.      complete machine name string resource. The command to use is
  1058.          archive get src/machname-str.sit.hqx
  1059.      I will keep it up-to-date along with the changes in this 'mach' entry.
  1060.      (Rene Ros)
  1061.  
  1062.      (Sources of relabled and unreleased machines:
  1063.       MacFacts Two by J.D.S. Babcock <jdsb@ee.duke.edu>;
  1064.       Duo FAQ by Nicholas C. De Mello <nick@pitt.edu>;
  1065.       MacWEEK magazine;
  1066.       TidBits magazine by Adam Engst & Co.)
  1067. malr (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1068.      gestaltSMPMailerVersion
  1069.      Returns the SMP Mailer version as INTEGER.
  1070.  
  1071.      gestaltSMPMailerVersion = 'malr'; {SMP Mailer version}
  1072. micn (System [6.0.4]) INF
  1073.      gestaltMachineIcon
  1074.      Returns an icon family resource ID for the current type of
  1075.      Macintosh.
  1076.  
  1077.      gestaltMachineIcon = 'micn'; {machine ICON/cicn res ID}
  1078.  
  1079.      NOTE:
  1080.      The icon resource ID returned is based on the gestaltMachineType
  1081.      response which is used as index into a table. This table of
  1082.      resource IDs differs for most System Software versions (and
  1083.      enablers). If you really want to know the icon resource ID of a
  1084.      machine which is not the current machine you have the following
  1085.      options:
  1086.      - Write a GDEF to replace the 'mach' selector, let this GDEF return
  1087.        the original gestaltMachineType unless a certain selector exists.
  1088.        Create this selector with the GestaltValue code and make it loop
  1089.        from 1 to the number of items in the STR# kMachineNameStrID
  1090.        resource, let the custom GDEF return this as the machine type so
  1091.        the gestaltMachineIcon selector will use this to look up the icon
  1092.        resource ID. Then remove the GestaltValue selector and restore the
  1093.        original gestaltMachineType selector.
  1094.      - Get the entrypoint of the gestaltMachineIcon GDEF, jump into the
  1095.        GDEF a few bytes further (and thus skipping the gestalt call using
  1096.        the gestaltMachineType selector), emulate a genuine call to Gestalt
  1097.        by setting the A0 (response, the machineType you want) and
  1098.        D0 (result) registers correct.
  1099.      - Determine the start of the table, which is located in memory before
  1100.        the entrypoint of the gestaltMachineIcon GDEF code, and calculate
  1101.        the offset to the icon resource ID you need. If you want code which
  1102.        does this, you can contact me (Rene Ros) an I will sent you some
  1103.        Pascal source code.
  1104.      (David Greenspon, Michael Hecht and Rene Ros)
  1105.  
  1106.      It appears as if this selector returns always the ID of the general
  1107.      Macintosh icon (like in the Welcome screen), starting with System 7.5.
  1108.      (Rene Ros)
  1109. misc (System [6.0.5])
  1110.      gestaltMiscAttr
  1111.      Returns information about miscellaneous pieces of software or
  1112.      hardware.
  1113.  
  1114.      gestaltMiscAttr          = 'misc'; {miscellaneous attributes}
  1115.      gestaltScrollingThrottle = 0;
  1116.      gestaltBootGlobals       = 1;      {Boot Globals} *M02
  1117.      gestaltSquareMenuBar     = 2;
  1118. mixd (System? [7.1.2?])
  1119.      gestaltMixedModeAttr
  1120.      Returns information about the Mixed Mode Manager.
  1121.  
  1122.      gestaltMixedModeAttr = 'mixd'; {Mixed Mode Mgr attributes}
  1123.      gestaltPowerPCAware  = 0;      {True if MMMgr Supports PowerPC}
  1124.  
  1125.      NOTE:
  1126.      IM OS Utilities lists the 'mixd' selector as 'gestaltMixedModeVersion'
  1127.      but I don't believe that... (Rene Ros)
  1128. mmu  (System [6.0.4])
  1129.      gestaltMMUType
  1130.      Returns a value that indicates the type of MMU currently installed,
  1131.      if any.
  1132.  
  1133.      gestaltMMUType  = 'mmu ';  {MMU Type}
  1134.      gestaltNoMMU    = 0;       {no MMU}
  1135.      gestaltAMU      = 1;       {AMU}
  1136.      gestalt68851    = 2;       {68851 MMU}
  1137.      gestalt68030MMU = 3;       {built-in 68030 MMU}
  1138.      gestalt68040MMU = 4;       {68040/68LC040 built-in}           *S01
  1139.      gestaltEMMU1    = 5;       {Emulated MMU type 1, PowerPC MMU} *AS05
  1140. mtcp (MacTCP cp [1.1])
  1141.      gestaltMacTCPAttr? *AD01
  1142.      Returns the version of MacTCP, if opened, as index-value.
  1143.  
  1144.      ====================
  1145.      MacTCP responses
  1146.      ====================
  1147.      Version   Response
  1148.      --------------------
  1149.       1.1         1
  1150.       1.1.1       2
  1151.       2.0.x       3
  1152.      --------------------
  1153.  
  1154.      If MacTCP is not opened a value of 0 is returned.
  1155.      No constants are defined with the documentation.
  1156. nlup (System [7.0])
  1157.      gestaltStdNBPAttr
  1158.      Returns information about the call StandardNBP.
  1159.  
  1160.      gestaltStdNBPAttr                 = 'nlup'; {Standard NBP attributes}
  1161.      gestaltStdNBPPresent              = 0;
  1162.      gestaltStdNBPSupportsAutoPosition = 1;      {StandardNBP takes (-1,-1)}
  1163.                                                  {for auto-positioning}
  1164. nmgr (System [6.0.5])
  1165.      gestaltNotificationMgrAttr
  1166.      Returns information about the Notification Manager.
  1167.  
  1168.      gestaltNotificationMgrAttr = 'nmgr'; {Notification Mgr attributes}
  1169.      gestaltNotificationPresent = 0;
  1170. nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
  1171.      gestaltNuBusSlotCount
  1172.      Returns count of NuBus slots.
  1173.  
  1174.      gestaltNuBusSlotCount = 'nubs'; {NuBus slot count}
  1175. ocet (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
  1176.      gestaltOCEToolboxVersion
  1177.      Returns the versions of the S&F Server and the OCE Toolbox as BCD.
  1178.  
  1179.      gestaltOCEToolboxVersion = 'ocet'; {OCE Toolbox version}
  1180.      gestaltOCETB             = $0102;  {current OCE Toolbox version 1.0.2}
  1181.      gestaltSFServer          = $0100;  {current S&F Server version 1.0}
  1182.  
  1183.      NOTE:
  1184.      The high order word will represent the S&F Server version number, and
  1185.      the low order the OCE Toolbox version number both as BCD.
  1186.      These will be zero until the component is up and running.
  1187. oceu (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
  1188.      gestaltOCEToolboxAttr
  1189.      Returns information about the Open Colloboration Environment Toolbox.
  1190.  
  1191.      gestaltOCEToolboxAttr          = 'oceu'; {OCE Toolbox attributes}
  1192.      gestaltOCETBPresent            = $1;     {OCE toolbox is present,}
  1193.                                               {not running}
  1194.      gestaltOCETBAvailable          = $2;     {OCE toolbox is running and}
  1195.                                               {available}
  1196.      gestaltOCESFServerAvailable    = $4;     {S&F Server is running and}
  1197.                                               {available}
  1198.      gestaltOCTBNativeGlueAvailable = $10;    {PowerPC glue available}*AS13
  1199.  
  1200.      NOTE:
  1201.      Any (future) remaining OCE attributes may not be established
  1202.      correctly until the attribute gestaltOCETBAvailable is set.
  1203. os   (System [6.0.4, 7.0 and later])
  1204.      (Process Manager INIT ext [???], part of System 7.1 Pro ? and
  1205.                                       System 7.5 ?)
  1206.      gestaltOSAttr
  1207.      Returns general information about the Operating System.
  1208.  
  1209.      gestaltOSAttr               = 'os  '; {O/S attributes}
  1210.      gestaltSysZoneGrowable      =  0;
  1211.      gestaltLaunchCanReturn      =  1;
  1212.      gestaltLaunchFullFileSpec   =  2;
  1213.      gestaltLaunchControl        =  3;
  1214.      gestaltTempMemSupport       =  4;
  1215.      gestaltRealTempMemory       =  5;
  1216.      gestaltTempMemTracked       =  6;
  1217.      gestaltIPCSupport           =  7;
  1218.      gestaltSysDebuggerSupport   =  8;
  1219.      gestaltSkiaGlobalsSwitched  =  9;     *AS05
  1220.      gestaltBgndMouseDownSupport = 10;     *AS04
  1221.      gestalt???                  = 11;     {on PowerPC, Modern Mem. Mgr?}
  1222.      gestalt???                  = 13;     {unknown, System 7.5}
  1223.      gestalt???                  = 14;     {unknown, System 7.5}
  1224.  
  1225.      NOTES:
  1226.      See the Process Manager chapter in IM Processes for more information
  1227.      about the launch control features. And the Memory Manager chapter in
  1228.      IM Memory about the memory features.
  1229.  
  1230.      The header file which lists the gestaltSkiaGlobalsSwitched bit says
  1231.      this:
  1232.      /*gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here*/
  1233.      
  1234.      "Skia" is the code name for QuickDraw GX (MacsBug uses it for trap
  1235.      $A832, which is the main QuickDraw GX trap).
  1236.      (Lawrence D'Oliveiro, Anonymous)
  1237. ostt (System [6.0.8?])
  1238.      gestaltOSTable
  1239.      Returns the base address of the Operating System trap table.
  1240.  
  1241.      gestaltOSTable = 'ostt'; {O/S trap table base}
  1242. osyv (sysvINIT ext [???] by T. Tanaka, Apple Computer Japan Inc.) INF
  1243.      gestaltOldSystemVersion?
  1244.      Returns the version of the system file as BCD which was returned
  1245.      before sysvINIT replaced the gestalt definition with a corrected one.
  1246.  
  1247.      gestaltOldSystemVersion? = 'osyv';
  1248.  
  1249.      NOTE:
  1250.      Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
  1251.      available on Developer CD-ROM Series) replaces the standard 'sysv'
  1252.      Gestalt Definition (GDEF) with a corrected one to return $0x0607 and
  1253.      installs the 'osyv' selector which uses the replaced gestalt
  1254.      definition. *M03
  1255. pcxg (System? [???]) *AS04/AS05
  1256.      gestaltPCXAttr
  1257.      Returns information about PC Exchange.
  1258.  
  1259.      gestaltPCXAttr            = 'pcxg'; {PC Exchange attributes}
  1260.      gestaltPCXHas8and16BitFAT = 0;      {PC Exchange supports both 8 and}
  1261.                                          {16 bit FATs}
  1262.      gestaltPCXHasProDOS       = 1;      {PC Exchange supports ProDOS}
  1263. pgsz (System [6.0.4])
  1264.      (RAM Doubler [1.0] by Connectix Corporation)
  1265.      gestaltLogicalPageSize
  1266.      Returns the logical page size in bytes.
  1267.  
  1268.      gestaltLogicalPageSize = 'pgsz'; {logical page size}
  1269.  
  1270.      NOTE:
  1271.      The value is unknown on 68000 machines, Gestalt will return an error.
  1272. pop! (System [7.0])
  1273.      gestaltPopupAttr
  1274.      Returns information about the pop-up control definition.
  1275.      
  1276.      gestaltPopupAttr    = 'pop!'; {pop-up CDEF attributes}
  1277.      gestaltPopupPresent = 0;      {pop-up CDEF available}
  1278. powr (System [6.0.4])
  1279.      gestaltPowerMgrAttr
  1280.      Returns information about the Power Manager, if present.
  1281.  
  1282.      gestaltPowerMgrAttr       = 'powr'; {Power Mgr attributes}
  1283.      gestaltPMgrExists         = 0;      {Power Mgr is present}
  1284.      gestaltPMgrCPUIdle        = 1;      {CPU can idle}
  1285.      gestaltPMgrSCC            = 2;      {can stop SCC clock}
  1286.      gestaltPMgrSound          = 3;      {can shut off sound circuits}
  1287.      gestaltPMgrDispatchExists = 4;      {dispatch routines are present}
  1288. ppc  (System [7.0])
  1289.      gestaltPPCToolboxAttr
  1290.      Returns information about the capabilities of the PPC Toolbox.
  1291.  
  1292.      gestaltPPCToolboxAttr             = 'ppc ';  {PPC Toolbox attributes}
  1293.      gestaltPPCToolboxPresent          = $0x0000; {Requires PPCInit to be}
  1294.                                                   {called}
  1295.      gestaltPPCSupportsIncoming        = $0x0001; {Deny incoming net}
  1296.                                                   {requests}
  1297.      gestaltPPCSupportsOutGoing        = $0x0002; {Deny outgoing net}
  1298.                                                   {requests}
  1299.      gestaltPPCSupportsRealTime        = $0x1000; {Supports real-time}
  1300.                                                   {delivery}
  1301.      gestaltPPCSupportsStoreAndForward = $0x2000; {Supports store and}
  1302.                                                   {forward delivery}
  1303.      gestaltPPCSupportsDontCare        = $0x4000; {Supports specification}
  1304.                                                   {of Don't care}
  1305.  
  1306.      NOTE:
  1307.      The first thing that is confusing is that, unlike other selectors
  1308.      returning attributes, the responses are not bit values, but bit masks.
  1309.      This means you simply AND the value with the response to test the bit.
  1310.      The second thing that is confusing is how to interpret
  1311.           gestaltPPCToolboxPresent = $0x0000.
  1312.      What this means is that if the PPC toolbox is present, but has not
  1313.      been initialised (by calling PPCInit), then gestaltPPCToolboxAttr
  1314.      returns $0x0000. In reality, PPCInit gets called by the Process
  1315.      Manager before any applications get launched, so no applications will
  1316.      actually see this response. (Dave Radcliffe)
  1317. proc (System [6.0.4])
  1318.      gestaltProcessorType
  1319.      Returns a value that indicates the type of processor that is
  1320.      currently running (or emulated on Power Macs or with MAE).
  1321.  
  1322.      gestaltProcessorType = 'proc'; {processor type}
  1323.      gestalt68000         = 1;      {MC68000}
  1324.      gestalt68010         = 2;      {MC68010}
  1325.      gestalt68020         = 3;      {MC68020}
  1326.      gestalt68030         = 4;      {MC68030}
  1327.      gestalt68040         = 5;      {MC68040} *S01
  1328.  
  1329.      NOTES:
  1330.      The 68LC040 responds as type gestalt68040 but doesn't has an FPU. The
  1331.      user can swap out the 68LC040 and put in a real 68040 with FPU, so
  1332.      just checking the machineType or the processorType isn't enough.
  1333.      (Dave Radcliffe)
  1334.  
  1335.      Has there been a 68EC030 processor??? I assume it returns
  1336.      gestalt68030 but doesn't has a MMU. (Rene Ros)
  1337.  
  1338.      On a Power Macintosh the Gestalt function returns, although a 68LC040
  1339.      is emulated, the value gestalt68020. This return value is intended to
  1340.      highlight the two ways in which the 68LC040 Emulator more closely
  1341.      resembles a 68020 processor than a 68040 processor. *AD11
  1342. prpv (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1343.      gestaltSDPPromptVersion
  1344.      Returns the SDP Prompt version as INTEGER.
  1345.  
  1346.      gestaltSDPPromptVersion = 'prpv'; {SDP Prompt version}
  1347. prty (System [6.0.4])
  1348.      gestaltParityAttr
  1349.      Returns information about the parity-checking abilities of the
  1350.      machine.
  1351.  
  1352.      gestaltParityAttr          = 'prty'; {parity attributes}
  1353.      gestaltHasParityCapability = 0;
  1354.      gestaltParityEnabled       = 1;
  1355. qd   (System [6.0.4])
  1356.      gestaltQuickDrawVersion
  1357.      Returns the version of QuickDraw currently present as 2-byte value.
  1358.  
  1359.      gestaltQuickDrawVersion = 'qd  '; {QuickDraw version}
  1360.      gestaltOriginalQD       = $000;   {obsolete?}
  1361.      gestaltOriginalQD1      = $001;   {obsolete?}
  1362.      gestalt8BitQD           = $100;
  1363.      gestalt32BitQD          = $200;
  1364.      gestalt32BitQD11        = $210;
  1365.      gestalt32BitQD12        = $220;
  1366.      gestalt32BitQD13        = $230;
  1367.      gestalt32BitQD135?      = $235;   {with System 7.1.2, ROM = 3072K?}
  1368.  
  1369.      ======================================================================
  1370.      Possible Combinations of ROM Versions and System Software Versions
  1371.      ======================================================================
  1372.      ROM Class             System Version         Gestalt Value
  1373.      ----------------------------------------------------------------------
  1374.      Black-and-white class <  7.0                 gestaltOriginalQD
  1375.      (ROM < 256K)          >= 7.0                 gestaltOriginalQD and
  1376.                                               gestaltSystemVersion >= $0700
  1377.  
  1378.      Color QD class        <  7.0, no INITs       gestalt8BitQD
  1379.      (ROM = 256K)          6.0.3/6.0.4 and        gestalt32BitQD
  1380.                            32-Bit QD INIT 1.0
  1381.                            6.0.5-6.0.8 and        gestalt32BitQD12
  1382.                            32-Bit QD INIT 1.2
  1383.                            >= 7.0                 gestalt32BitQD13
  1384.  
  1385.      ci class              6.0.4                  gestalt32BitQD + 1
  1386.      (256K < ROM >= 3072K) 6.0.5-6.0.8            gestalt32BitQD12
  1387.                            >= 7.0                 gestalt32BitQD13
  1388.      PPC class?            7.1.2?                 gestalt32BitQD135?
  1389.      (ROM = 3072K)
  1390.      ----------------------------------------------------------------------
  1391.      (Original source: Develop 14, June 1993, p. 56)
  1392.  
  1393.      NOTE:
  1394.      gestalt32BitQD11 is never returned and gestalt32BitQD + 1 means
  1395.      $0x0201 as response value and doesn't has a defined constant.
  1396.      Another QuickDraw version is System 7 with a black-and-white class
  1397.      machine.
  1398. qdrw (System [7.0])
  1399.      gestaltQuickDrawFeaturesAttr
  1400.  
  1401.      gestaltQuickDrawFeaturesAttr = 'qdrw'; {QuickDraw attributes} *S01
  1402.      gestaltHasColor              = 0;      *S01
  1403.      gestaltHasDeepGWorlds        = 1;      *S01
  1404.      gestaltHasDirectPixMaps      = 2;      *S01
  1405.      gestaltHasGrayishTextOr      = 3;      *S01
  1406.      gestaltSupportsMirroring     = 4;      *AD12
  1407.  
  1408.      NOTES:
  1409.      There is a bug in the 'qdrw' selector that causes it to report that
  1410.      Color QuickDraw is always present, even on machines that don't support
  1411.      it. Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
  1412.      Use SysEnvirons instead or test for the QD version ('qd  ') being
  1413.      8-bit QD or later.
  1414.  
  1415.      IM OS Utilities lists this selector as 'gestaltQuickDrawFeatures'.
  1416. qtim (QuickTime ext [1.0])
  1417.      gestaltQuickTime
  1418.      Returns QuickTime version as NumVersion.
  1419.  
  1420.      gestaltQuickTime = 'qtim'; {Movie Toolbox Availability}
  1421.  
  1422.      NOTES:
  1423.      The returned version is obtained from 'vers' resource ID# 1.
  1424.  
  1425.      IM OS Utilities lists this selector as 'gestaltQuickTimeVersion'.
  1426.  
  1427.      See 'Reports' chapter (QuickTime section) for more information.
  1428. qtrs (QuickTime PowerPlug ext [1.0?])
  1429.      gestaltQuickTimeFeatures *AS06
  1430.      
  1431.      gestaltQuickTimeFeatures      = 'qtrs'; {QT Features attributes}
  1432.      gestaltPPCQuickTimeLibPresent = 0,         {PowerPC QT glue library is}
  1433.                                              {present}
  1434.  
  1435.      NOTE:
  1436.      The gestaltPPCQuickTimeLibPresent bit indicates that the native
  1437.      QuickTime interface library is available and can be called by native
  1438.      PowerPC applications. (Dave Radcliffe)
  1439. ram  (System [6.0.4])
  1440.      (RAM Doubler [1.0] by Connectix Corporation)
  1441.      gestaltPhysicalRAMSize
  1442.      Returns the number of bytes of the physical RAM currently installed.
  1443.  
  1444.      gestaltPhysicalRAMSize = 'ram '; {physical RAM}
  1445. rbv  (System [6.0.4, discontinued?]) *AS04
  1446.      gestaltRBVAddr
  1447.      Returns the address of the RBV?
  1448.  
  1449.      gestaltRBVAddr = 'rbv '; {RBV address}
  1450. rom  (System [6.0.4]) INF
  1451.      gestaltROMSize
  1452.      Returns the size of the installed ROM in bytes.
  1453.  
  1454.      gestaltROMSize = 'rom '; {ROM size}
  1455. romv (System [6.0.4]) INF
  1456.      gestaltROMVersion
  1457.      Returns the version number of the installed ROM.
  1458.  
  1459.      gestaltROMVersion = romv'; {ROM version}
  1460. rsrc (System [should work since 7.0?])
  1461.      gestaltResourceMgrAttr
  1462.      Returns information about the Resource Manager.
  1463.  
  1464.      gestaltResourceMgrAttr = 'rsrc'; {Resource Mgr attributes}
  1465.      gestaltPartialRsrcs    = 0;
  1466.      gestalt???             = 1;      {unknown}
  1467.  
  1468.      NOTE:
  1469.      Under System 7, bit 0 that tells if you have partial resource support
  1470.      doesn't work right. The selector is undefined under System 7.0 and
  1471.      7.0.1 even though the partial resource calls are available. This has
  1472.      been acknowledged by Apple.
  1473.      (Michael Hecht, Quinn)
  1474. rtmr (System? [7.1.1?])
  1475.      gestaltRealtimeMgrAttr
  1476.      Returns information about the Realtime Manager.
  1477.  
  1478.      gestaltRealtimeMgrAttr    = 'rtmr'; {Realtime Mgr attributes}
  1479.      gestaltRealtimeMgrPresent = 0;      {Realtime Mgr is present}
  1480.  
  1481.      NOTE:
  1482.      If the RealTime Mgr is present this means the ARTA routines are
  1483.      available to determine if and how many DSPs are installed.
  1484.      (Zalman Stern)
  1485.  
  1486. Apple System Software (S-Z)
  1487. ---------------------------
  1488. sccr (System [6.0.4, discontinued]) *AS04
  1489.      gestaltSCCReadAddr
  1490.      Returns the address of SCC read ports.
  1491.  
  1492.      gestaltSCCReadAddr = 'sccr'; {SCC read ports address}
  1493. sccw (System [6.0.4, discontinued]) *AS04
  1494.      gestaltSCCWriteAddr
  1495.      Returns the address of SCC write ports.
  1496.  
  1497.      gestaltSCCWriteAddr = 'sccw'; {SCC write ports address}
  1498. scr# (System [6.0.4])
  1499.      gestaltScriptCount
  1500.      Returns the number of script systems currently active.
  1501.  
  1502.      gestaltScriptCount = 'scr#'; {number of active scripts}
  1503. scra (Macintosh Easy Open cp [1.0]) *AD03
  1504.      gestaltScrapMgrAttr
  1505.      Returns information about the Scrap Manager.
  1506.  
  1507.      gestaltScrapMgrAttr             = 'scra'; {Scrap Mgr attributes}
  1508.      gestaltScrapMgrTranslationAware = 0;
  1509.      gestaltTranslationMgrHintOrder  = 1;      *AS04
  1510. scri (System [6.0.4])
  1511.      gestaltScriptMgrVersion
  1512.      Returns the version number of the Script Manager as BCD.
  1513.  
  1514.      gestaltScriptMgrVersion = 'scri'; {Script Mgr version}
  1515.  
  1516.      ======================================================================
  1517.      Version numbers for the Script Manager
  1518.      ======================================================================
  1519.      System Version       Script Mgr           Script Mgr          Version
  1520.                           (older ROMs)+        (newer ROMs)        format
  1521.      ----------------------------------------------------------------------
  1522.      6.0.3 and earlier    <= $20F              N.A.                binary
  1523.      6.0.4 Roman          $211                 $215                  "
  1524.      6.0.4 non-Roman      $212                 $216                  "
  1525.      6.0.5                $213                 $217 (=2.23)          "
  1526.  
  1527.      6.0.7                $230                 $231                BCD
  1528.      J-6.0.7.1            $230                 $231                 "
  1529.      6.0.8                $230                 $231                 "
  1530.      6.1 non-Roman        $240                 $241                 "
  1531.      7.0                  $700                 $700                 "
  1532.      7.0.1 Roman          $701                 $701                 "
  1533.      7.0.1 non-Roman      $701                 $701                 "
  1534.      7.1                  $710                 $710                 "
  1535.      7.5                  $720                 $720                 "
  1536.  
  1537.      + Plus,SE,II,IIx,IIcx,SE/30,Classic
  1538.      ----------------------------------------------------------------------
  1539.      (Original source: Inside Macintosh Text, p. 6-9)
  1540.  
  1541. scsi (System [7.1.2?])
  1542.      (SCSI Manager ext [4.3])
  1543.      gestaltSCSI *AT07
  1544.      Returns information about the SCSI Manager.
  1545.  
  1546.      gestaltSCSI           = 'scsi'; {SCSI Manager attributes}
  1547.      gestaltAsyncSCSI      = 0;      {Supports asynchronous SCSI}
  1548.      gestaltAsyncSCSIINROM = 1;      {Async SCSI is in ROM}
  1549.                                      {(available for booting)}
  1550.      gestaltSCSISlotBoot   = 2;      {ROM supports Slot-style PRAM for}
  1551.                                      {SCSI boots}
  1552. sdev (Control Strip cp [1.0], part of PowerBook Utilities)
  1553.      gestaltControlStripAttr
  1554.      Returns information about the Control Strip software.
  1555.  
  1556.      gestaltControlStripAttr         = 'sdev';
  1557.      gestaltControlStripExists       = 0;     {TRUE = control strip is}
  1558.                                               {installed}
  1559.      gestaltControlStripVersionFixed = 1;     {version of Control Strip}
  1560.                                               {installs 'csvr' selector}
  1561.                                               {instead of 'sdvr' ?} *AS11
  1562.  
  1563.      NOTE:
  1564.      Control Strip displays a row with icons and popup menus to quickly
  1565.      change settings on portable macs, i.e. AppleTalk and the sound volume.
  1566. sdvr (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1567.      gestaltSDPStandardDirectoryVersion
  1568.      Returns the SDP Standard Directory version as INTEGER.
  1569.  
  1570.      gestaltSDPStandardDirectoryVersion = 'sdvr'; {SDP Standard Directory}
  1571.                                                   {version}
  1572.  
  1573.      WARNING:
  1574.      The same selector code is used by the Control Strip 1.0 control panel.
  1575.      See the gestaltControlStripVersion ('csvr') selector entry above.
  1576. ser  (System [6.0.8?])
  1577.      gestaltSerialAttr
  1578.      Returns information about the serial hardware of the machine.
  1579.  
  1580.      gestaltSerialAttr  = 'ser '; {serial hardware attributes}
  1581.      gestaltGPIaToDCDa  = 0;
  1582.      gestaltGPIaToRTxCa = 1;
  1583.      gestaltGPIaToDCDb  = 2;
  1584. slot (System [6.0.4, 6.0.5, discontinued])
  1585.      gestaltSlotAttr
  1586.      Returns information about the Slot Manager.
  1587.  
  1588.      gestaltSlotAttr            = 'slot'; {Slot Mgr attributes}
  1589.      gestaltSlotMgrExists       = 0;
  1590.      gestaltNuBusPresent        = 1;
  1591.      gestaltSESlotPresent       = 2;
  1592.      gestaltSE30SlotPresent     = 3;
  1593.      gestaltPortableSlotPresent = 4;
  1594. slt1 (System [6.0.4, 6.0.5, discontinued])
  1595.      gestaltFirstSlotNumber
  1596.      Returns first slot number.
  1597.  
  1598.      gestaltFirstSlotNumber = 'slt1'; {First Slot number}
  1599. sltc (System [6.0.8?])
  1600.      gestaltNuBusConnectors
  1601.      Returns information about the NuBus slot connector locations. The
  1602.      value returned is a bitmap. If bits 9 to E are set, there are six
  1603.      slots present with locations 9 to E.
  1604.  
  1605.      gestaltNuBusConnectors = 'sltc'; {NuBus connector bitmap}
  1606.  
  1607.      NOTE:
  1608.      This selector does not return information about the Macintosh IIsi
  1609.      slot.
  1610. snd  (System [6.0.4])
  1611.      gestaltSoundAttr
  1612.      Returns information about the sound capabilities of the machine.
  1613.  
  1614.      gestaltSoundAttr           = 'snd '; {sound attributes}
  1615.      gestaltStereoCapability    =  0;     {can play stereo sounds}
  1616.      gestaltStereoMixing        =  1;     {mixes channels into single}
  1617.                                           {signal}
  1618.      gestaltSoundReserved       =  2;
  1619.      gestaltSoundIOMgrPresent   =  3;     {new sound input routines avail.}
  1620.      gestaltBuiltInSoundInput   =  4;     {built-in sound input device
  1621.                                           {available}
  1622.      gestaltHasSoundInputDevice =  5;     {some sound input device avail.}
  1623.      gestaltPlayAndRecord       =  6;     {built-in hardware can play and}
  1624.                                           {record simultaneously}
  1625.                                           *AS03/AS04
  1626.      gestalt16BitSoundIO        =  7;     {sound hardware can play and}
  1627.                                           {record 16-bit samples}     *AS04
  1628.      gestaltStereoInput         =  8;     {sound hardware can record}
  1629.                                           {stereo} *AS04
  1630.      gestaltLineLevelInput      =  9;     {sound input port requires}
  1631.                                           {line level} *AS04
  1632.      gestaltSndPlayDoubleBuffer = 10;     {play from disk available}  *AS04
  1633.      gestaltMultiChannels       = 11;     {multiple channel support}
  1634.                                           *AS03/AS04
  1635.      gestalt16BitAudioSupport   = 12;     {16 bit audio data supported}
  1636.                                           *AS04
  1637.  
  1638.      NOTES:
  1639.      Bit 7 through 12 are not defined for versions of the Sound Manager
  1640.      prior to version 3.0.
  1641.  
  1642.      If the gestaltSndPlayDoubleBuffer flag is not set you can check for
  1643.      the gestaltHasASC flag with the gestaltHardwareAttr selector. If this
  1644.      is true both SndPlayDoubleBuffer and SndStartFilePlay are present.
  1645.      *AD06
  1646. snhw (System [7.5])
  1647.      (Sound Manager ext [3.0])
  1648.      gestaltSoundHardware
  1649.      Returns type of hardware used for sound?
  1650.  
  1651.      gestaltSoundHardware = 'snhw'; {Sound Hardware}
  1652.      gestaltASC           = 'asc '; {ASC}
  1653.      gestaltDSP           = 'dsp '; {DSP}
  1654.      gestaltClassicSound  = 'clas'; {Classic Mac?}
  1655.      gestaltAWAC?         = 'awac'; {returned on PowerMac}
  1656.      gestaltSing?         = 'sing'; {returned on PB 540c}
  1657. spsl (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1658.      gestaltSMPSPSendLetterVersion
  1659.      Returns the SMP SendLetter version as INTEGER.
  1660.  
  1661.      gestaltSMPSPSendLetterVersion = 'spsl'; {SMP Sendletter version}
  1662. stdf (System [7.0])
  1663.      (Macintosh Easy Open cp [1.0?])
  1664.      gestaltStandardFileAttr
  1665.      Returns information about the Standard File Package.
  1666.  
  1667.      gestaltStandardFileAttr                       = 'stdf';
  1668.                                                  {Standard File attributes}
  1669.      gestaltStandardFile58                         = 0;
  1670.                           {StandardPutFile, StandardGetFile, CustomPutFile}
  1671.                                          {and CustomGetFile are available.}
  1672.      gestaltStandardFileTranslationAware           = 1; *AD03/AS04
  1673.      gestaltStandardFileHasColorIcons              = 2; *AD03/AS04/AS05
  1674.      gestaltStandardFileUseGenericIcons            = 3;
  1675.                 {force the LDEF to use only the system generic icons} *AT06
  1676.      gestaltStandardFileHasDynamicVolumeAllocation = 4;
  1677.                                       {supports more than 20 volumes} *AT06
  1678. sysa (System [7.1.2?]) *AS04
  1679.      gestaltSysArchitecture
  1680.      Returns one of the following values, indicating the type of
  1681.      architecture on which the application is currently running.
  1682.  
  1683.      gestaltSysArchitecture = 'sysa'; {System Architecture type}
  1684.      gestalt68k             = 1;
  1685.      gestaltPowerPC         = 2;
  1686. sysv (System [6.0.4]) INF
  1687.      gestaltSystemVersion
  1688.      Returns the version number of the currently active System file as BCD.
  1689.  
  1690.      gestaltSystemVersion = 'sysv'; {System file version}
  1691.  
  1692.      NOTES:
  1693.      Is it correct system 6.0.8 returns $0x0607? Can you determine if it is
  1694.      actually 6.0.8 in another way?
  1695.  
  1696.      In addition KanjiTalk 6.0.7 (Japanese System) and other non-Roman
  1697.      versions return $0606. See the 'osyv' selector.
  1698.      System J-6.0.7.1 returns $0609
  1699.  
  1700.      System 7.1.2 (for Power Macintosh) apparently returns an incorrect
  1701.      version number ($0710) when in 68K mode with a PPC Upgrade card.
  1702.      (Rick Gansler)
  1703.  
  1704.      There are some system versions (like International System 6.0.8.1 or
  1705.      7.0.1.1) which just return the normal version number, i.e. 6.0.8 and
  1706.      7.0.1.
  1707. tabl (System [6.0.4])
  1708.      gestaltSelectorTable?
  1709.      Returns a handle to the Gestalt selector table itself.
  1710.  
  1711.      gestaltSelectorTable? = 'tabl'; {Gestalt Table address}
  1712.  
  1713.      WARNING:
  1714.      Although this information isn't officially confirmed, it is probably
  1715.      correct. But it is likely to go away in future systems.
  1716.  
  1717.      NOTE:
  1718.      The Gestalt selector table is kept in a resizable block in the system
  1719.      heap. The last item in the table is a dummy entry (INVALID), marked by
  1720.      a selector OSType(MaxLongInt). (Marco Piovanelli, he also has some
  1721.      snippet Pascal code to list all selectors)
  1722. tbtt (System [6.0.8])
  1723.      gestaltToolboxTable
  1724.      Returns the base address of the Toolbox trap table.
  1725.  
  1726.      gestaltToolboxTable = 'tbtt'; {Toolbox trap table base}
  1727. te   (System [6.0.5])
  1728.      gestaltTextEditVersion
  1729.      Returns a value that indicates which version of TextEdit is present.
  1730.  
  1731.      gestaltTextEditVersion = 'te  '; {TextEdit version}
  1732.      gestaltTE1             = 1;
  1733.      gestaltTE2             = 2;
  1734.      gestaltTE3             = 3;
  1735.      gestaltTE4             = 4;
  1736.      gestaltTE5             = 5;
  1737.  
  1738.      ======================================================================
  1739.      Version numbers for TextEdit
  1740.      ======================================================================
  1741.      Returned value       New Features           System software   Hardware
  1742.      ----------------------------------------------------------------------
  1743.      gestaltUndefSelector Multistyled TE         before 6.0.4      all
  1744.      gestaltTE1                                  6.0.4 Roman       IIci
  1745.      gestaltTE2           New width              6.0.4 non-Roman   IIci
  1746.                           measurement hook
  1747.                           Script Mgr compatible
  1748.      gestaltTE3                                  6.0.4 non-Roman   non-IIci
  1749.      gestaltTE4           TEFeatureFlag          6.0.5             all
  1750.      gestaltTE5           Text width             7.0               all
  1751.                           measurement hook
  1752.      ----------------------------------------------------------------------
  1753.      (Source: Inside Macintosh Text, p.2-23)
  1754. teat (Macintosh Drag and Drop ext [1.0])
  1755.      gestaltTEAttr *AD05
  1756.      Returns information about the functions and capabilities of TextEdit.
  1757.  
  1758.      gestaltTEAttr            = 'teat'; {TextEdit attributes}
  1759.      gestaltTEHasGetHiliteRgn = 0;      {TEGetHiliteRgn present}
  1760. tele (System [7.5])
  1761.      gestaltTelephoneMgrAttr?
  1762.      Returns information about the Telephone Mgr.
  1763.  
  1764.      gestaltTelephoneMgrAttr?         = 'tele';
  1765.      gestaltTelephoneMgrPresent       = 0;
  1766.      gestaltPPCTelephoneLibPresent?   = 1;
  1767. term (System [7.1])
  1768.      gestaltTermMgrAttr
  1769.      Returns information about the Terminal Manager.
  1770.  
  1771.      gestaltTermMgrAttr        = 'term'; {Terminal Mgr attributes}
  1772.      gestaltTermMgrPresent     = 0;      {Terminal Mgr is present}
  1773.      gestaltTermMgrErrorString = 2;      *AS04
  1774. thds (Thread Manager ext [1.1]) *AD04
  1775.      (QuickDraw GX ext [1.0?])
  1776.      gestaltThreadAttr
  1777.      Returns information about the Thread Manager.
  1778.  
  1779.      gestaltThreadAttr            = 'thds'; {Thread Manager attributes}
  1780.      gestaltThreadsPresent        = 0;      {bit true if Threads present}
  1781.      gestaltSpecificMatchSupport  = 1;      {bit true if â€˜exact match’}
  1782.                                             {API supported}
  1783.      gestaltThreadsLibraryPresent = 2;      {bit true if ThreadsLib is}
  1784.                                             {present}
  1785.      gestalt???                   = 4;      {unknown}
  1786.      
  1787.      NOTE:
  1788.      IM OS Utilities lists this selector as 'gestaltThreadMgrAttr'.
  1789. tmgr (System [6.0.4])
  1790.      gestaltTimeMgrVersion
  1791.      Returns a value that indicates the version of the Time Manager.
  1792.  
  1793.      gestaltTimeMgrVersion  = 'tmgr'; {Time Mgr version}
  1794.      gestaltStandardTimeMgr = 1;      {Standard Time Mgr}
  1795.      gestaltRevisedTimeMgr  = 2;      {Revised Time Mgr}
  1796.      gestaltExtendedTimeMgr = 3;      {Extended Time Mgr}
  1797. tsmv (System [7.1])
  1798.      gestaltTSMgrVersion *AT05
  1799.      Returns Text Services Manager version in BCD.
  1800.  
  1801.      gestaltTSMgrVersion = 'tsmv'; {Text Services Mgr version}
  1802. ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) *AT03
  1803.      gestaltForeignFAVersion?
  1804.      Returns Foreign File Access version in BCD.
  1805.  
  1806.      gestaltForeignFAVersion? = 'ufox'; {Foreign File Access version}
  1807.  
  1808.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1809. vers (System [6.0.4])
  1810.      gestaltVersion
  1811.      Returns the version of Gestalt as INTEGER.
  1812.  
  1813.      gestaltVersion = 'vers'; {Gestalt version}
  1814.  
  1815.      NOTE:
  1816.      Usually version 1 is present. On machines with ROM version 1917
  1817.      (Quadra 840AV, PowerMacs etc.) version 4 is present.
  1818.      Version 5 is installed by System 7.5 adding support for the
  1819.      GestaltValue calls??? (Rene Ros)
  1820. via1 (System [6.0.4, discontinued])
  1821.      gestaltVIA1Addr
  1822.      Returns the address of VIA 1.
  1823.  
  1824.      gestaltVIA1Addr = 'via1'; {VIA 1 address}
  1825. via2 (System [6.0.4, discontinued])
  1826.      gestaltVIA2Addr
  1827.      Returns the address of VIA 2.
  1828.  
  1829.      gestaltVIA2Addr = 'via2'; {VIA 2 address}
  1830. vm   (System [6.0.4])
  1831.      (RAM Doubler [1.0] by Connectix Corporation)
  1832.      gestaltVMAttr
  1833.      Returns information about virtual memory.
  1834.  
  1835.      gestaltVMPresent      = 0; {set; virtual memory present}
  1836.      gestaltVMNotInstalled = 0; {clear; virtual memory not present}
  1837.  
  1838.      NOTE:
  1839.      Future OS may have VM always on but this is not reported by this
  1840.      selector. A future selector will tell if the microkernal is running
  1841.      and thus if VM is actually used. *AD10
  1842. wma. (System [7.0])
  1843.      (Responder ext [2.0?])
  1844.      gestaltResponderAttr
  1845.      Returns information about the Workstation Management Agent a.k.a.
  1846.      Responder.
  1847.  
  1848.      gestaltResponderAttr    = 'wma.'; {Responder attributes}
  1849.      gestaltResponderPresent = 0;      {Responder is present}
  1850. xlat (Macintosh Easy Open cp [1.0]) *AD03
  1851.      gestaltTranslationAttr
  1852.      Returns information about the Translation Manager.
  1853.  
  1854.      gestaltTranslationAttr            = 'xlat'; {Translation Mgr attrib.}
  1855.      gestaltTranslationMgrExists       = 0;      {TM present}
  1856.      gestaltTranslationMgrHintOrder    = 1;      {TRUE if hint order}
  1857.                                                  {reversal bug is fixed}
  1858.      gestaltTranslationPPCAvail        = 2;      {PPC Lib. available}
  1859.      gestaltTranslationGetPathAPIAvail = 3;      {GetFileTranslationPath}
  1860.                                    {and GetPathTranslationDialog available}
  1861.      gestalt???                        = 4;      {by MEO 1.1}
  1862. xttt (System [6.0.8])
  1863.      gestaltExtToolboxTable
  1864.      Returns the base address of the Extended Toolbox trap table.
  1865.  
  1866.      gestaltExtToolboxTable = 'xttt'; {Extended Toolbox trap table}
  1867.  
  1868. Apple Additional Software
  1869. -------------------------
  1870. arb  (Serial Port Arbitrator ext [1.0], part of Apple Remote Access)
  1871.      gestaltArbitorAttr *AD02
  1872.      Returns information about the Serial Port Arbitration.
  1873.  
  1874.      gestaltArbitorAttr             = 'arb '; {Serial Port Arbitration}
  1875.                                               {attributes}
  1876.      gestaltSerialArbitrationExists = 0;      {Serial Port Arbitration}
  1877.                                               {installed}
  1878. cltn (QuickDraw GX [1.0])
  1879.      gestaltCollectionMgrVersion
  1880.      Returns the version of the Collection Manager as NumVersion.
  1881.  
  1882.      gestaltCollectionMgrVersion = 'cltn'; {Collection Mgr version}
  1883.  
  1884.      NOTE:
  1885.      The Collection Manager is a set of routines for maintaining tagged
  1886.      collections of data; GX uses it to support the "tags" that you can
  1887.      attach to GX objects, for holding special data, including
  1888.      user-defined data. (Lawrence D'Oliveiro)
  1889. cmta (ColorSync ext [1.0.4?]
  1890.      gestaltColorMatchingAttr *AD09
  1891.      Returns information about the ColorSync Utilities?
  1892.  
  1893.      gestaltColorMatchingAttr        = 'cmta'; {Color Matching Attributes}
  1894.      gestaltHighLevelMatching        = 0;      {BeginMatching &}
  1895.                                                {DrawMatchedPicture present}
  1896.      gestaltColorMatchingLibLoaded   = 1;      {Native PowerPC shared}
  1897.                                                {library is loaded. a.k.a.}
  1898.                                                {gestaltSharedLibLoaded?}
  1899. cmtc (ColorSync ext [1.0?])
  1900.      gestaltColorMatchingVersion
  1901.      Returns the version of the Color Matching software as BCD.
  1902.  
  1903.      gestaltColorMatchingVersion = 'cmtc'; {Color Matching version}
  1904.      gestaltColorSync10          = $0100;  *AD09
  1905.      gestaltColorSync11          = $0110;  *AD09
  1906.      gestaltColorSync104         = $0104;  *AD09
  1907.      gestaltColorSync105         = $0105;  *AD09
  1908.  
  1909.      NOTE: From version 1.0.4 up the correct version is returned.
  1910. fsm  (File System Manager ext [1.2?])
  1911.      gestaltFSMVersion *AD14
  1912.      Returns File System Manager version as BCD.
  1913.  
  1914.      gestaltFSMVersion = 'fsm ';
  1915. gfxa (QuickDraw GX [1.0])
  1916.      gestaltGraphicsAttr
  1917.      Returns information about the Graphics.
  1918.  
  1919.      gestaltGraphicsAttr        = 'gfxa'; {graphics attributes bits }
  1920.      gestaltGraphicsIsDebugging = $0001;
  1921.      gestaltGraphicsIsLoaded    = $0002;
  1922.      gestaltGraphicsIsPowerPC   = $0004;
  1923.  
  1924.      NOTE: Not bit values but bit masks? Use AND?
  1925. grfx (QuickDraw GX ext [1.0])
  1926.      gestaltGraphicsVersion
  1927.      Returns the version of the Graphics as INTEGER.
  1928.  
  1929.      gestaltGraphicsVersion        = 'grfx';    {Gestalt version selector}
  1930.      gestaltCurrentGraphicsVersion = $00010000; {supposed value returned}
  1931. kids (At Ease [1.0])
  1932.      kAtEaseGestalt
  1933.      Returns a handle to a structure holding information about At Ease.
  1934.  
  1935.      The following code was published by Apple *AT06:
  1936.  
  1937.      #define kAtEaseGestalt    'kids'
  1938.      typedef struct {
  1939.        short  giVersion;         /* structure version */
  1940.        short  giIsActive;        /* true if at ease is currently running */
  1941.        short  giAutoCreateAlias; /* if true then auto create alias */
  1942.        short  giRequestFloppy;   /* if true then request floppy on new
  1943.                                     saves */
  1944.        short  giStacksAreApps;   /* if true then HyperCard stacks are shown
  1945.                                     with applications */
  1946.        FSSpec giItemsLocation;   /* location of the At Ease Items folder */
  1947.      } GestaltRec, *GestaltRecPtr, **GestaltRecHand;
  1948. mess (QuickDraw GX [1.0])
  1949.      gestaltMessageMgrVersion
  1950.      Returns the version of the Message Manager as NumVersion.
  1951.  
  1952.      gestaltMessageMgrVersion = 'mess'; {Message Mgr version}
  1953.  
  1954.      NOTE:
  1955.      The Message Manager is an implementation of object-oriented-style
  1956.      message passing within an inheritance hierarchy, that can be used from
  1957.      non-OO languages.
  1958.      It is used by the GX printing system, to allow the customization of
  1959.      printing behaviour by letting applications (and developers of printing
  1960.      extensions) intercept messages sent to the printer driver.
  1961.      (Lawrence D'Oliveiro)
  1962. pmgr (QuickDraw GX [1.0])
  1963.      gestaltPrintingMgrVersion
  1964.      Returns the version of the QuickDraw GX Printing Manager as
  1965.      NumVersion.
  1966.  
  1967.      gestaltPrintingMgrVersion = 'pmgr'; {Printing Mgr version}
  1968. qdgx (QuickDraw GX [1.0])
  1969.      gestaltGXVersion
  1970.      Returns the version of QuickDraw GX as NumVersion.
  1971.  
  1972.      gestaltGXVersion = 'qdgx'; {QuickDraw GX version}
  1973. srta (Speech Recognition ext [1.2.1?])
  1974.      gestaltSpeechRecognitionAttr
  1975.      Returns information about the Speech Recognition software.
  1976.  
  1977.      gestaltSpeechRecognitionAttr      = 'srta';
  1978.      gestaltDesktopSpeechRecognition   = 0;      {Recognition using mic.}
  1979.      gestaltTelephoneSpeechRecognition = 1;      {FUTURE}
  1980.  
  1981.      NOTE:
  1982.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  1983.      selector is installed on all machines and the response value will
  1984.      indicate the speech recognition is available. (Rene Ros)
  1985. srtb (Speech Recognition ext [1.2.1?])
  1986.      gestaltSpeechRecognitionVersion
  1987.      Returns the version of the Speech Recognition software as BCD.
  1988.  
  1989.      gestaltSpeechRecognitionVersion = 'srtb';
  1990.  
  1991.      NOTE:
  1992.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  1993.      selector is installed on all machines and its presence will indicate
  1994.      the speech recognition is available. (Rene Ros)
  1995. strm (Remote Access Aliases [1.0], part of Apple Remote Access)
  1996.      gestaltRemoteAccessAttr *AD02
  1997.  
  1998.      gestaltRemoteAccessAttr    = 'strm'; {Remote Access attributes}
  1999.      gestaltRemoteAccessExists  = 0;      {RA Connection Interface is}
  2000.                                           {available}
  2001.      gestalt???                 = 1;      {installed since ARA 2.0?}
  2002.      gestalt???                 = 3;      {installed since ARA 2.0?}
  2003. tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
  2004.      gestaltTSMTEAttr *AS07
  2005.      Returns information about the Text Services Manager for TextEdit.
  2006.  
  2007.      gestaltTSMTEAttr    = 'tmTE'; {TSM for TE attributes}
  2008.      gestaltTSMTEPresent = 0;      {TSM for TE is present}
  2009. tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
  2010.      gestaltTSMTEVersion *AS07
  2011.      Returns the version of the Text Services Manager for TextEdit as BCD.
  2012.  
  2013.      gestaltTSMTEVersion = 'tmTV'; {TSM for TE version}
  2014.      gestaltTSMTE1       = $0100;  {TSM for TE version 1.0}
  2015. ttsc (Text-To-Speech Manager ext [1.0?])
  2016.      gestaltSpeechAttr
  2017.      Returns information about the Speech Manager.
  2018.  
  2019.      gestaltSpeechAttr       = 'ttsc'; {Text-To-Speech Manager attrib.}
  2020.      gestaltSpeechMgrPresent = 0;      {bit true if Speech Mgr present}
  2021.      gestaltSpeechHasPPCGlue = 1;      {Speech Mgr has native PPC glue}
  2022. ws 1 (WorldScript I ext [7.1?])
  2023.      gestaltWorldScriptIVersion?
  2024.      Returns version of WorldScript I software as BCD.
  2025.  
  2026.      gestaltWorldScriptIVersion? = 'ws 1';
  2027. XTND (??? [???])
  2028.      gestaltXTNDAttr *AS11
  2029.      Returns information about XTND Manager?
  2030.  
  2031.      gestaltXTNDAttr       = 'XTND';
  2032.      gestaltPPCXTNDPresent = 1;
  2033.  
  2034.      NOTE:
  2035.      Is used in some code to check if XTND engine is present. However it is
  2036.      unknown when it is installed, so supposedly it is meant for future
  2037.      use. Like a built-in XTND engine in the System Software? When the
  2038.      selector is installed all operations are dispatched through trap
  2039.      _XTNDMgr ($ABF4) otherwise the library provides the code.
  2040.      (Marco Piovanelli)
  2041.  
  2042. Third Parties Software
  2043. ----------------------
  2044. !SYM (Symbionts ext [1.0] by B. Kevin Hardman)
  2045.      gestaltSymbiontsTable
  2046.      Returns a pointer to a structure containing the size of the System
  2047.      Heap before and after loading the INITs.
  2048.  
  2049.      gestaltSymbiontsTable = '!SYM'; {Symbionts address}
  2050. ADfd (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2051.      gestaltAfterDarkFolder *M05
  2052.      Returns a pointer to a procedure that gives the DirID and vRefNum of
  2053.      the 'After Dark Files' folder.
  2054.  
  2055.      gestaltAfterDarkFolder = 'ADfd';
  2056.      
  2057.      NOTE:
  2058.      See for more information the AfterDark Gestalt header file (See
  2059.      section 'Related Software' in the 'General Info' chapter for
  2060.      availability)
  2061. ADrk (AfterDark [2.0] by Berkeley Systems, Inc.)
  2062.      gestaltAfterDarkAttr *M05
  2063.      Returns a longword bitmask containing public information about
  2064.      After Dark.
  2065.  
  2066.      gestaltAfterDarkAttr = 'ADrk'; {After Dark states}
  2067.      eSystemIQActive      = 0;      {SystemIQx activity monitor active}
  2068.      eSoundActive         = 1;      {AD has allocated a sound channel}
  2069.      eADAcquiringPassword = 2;      {After Dark has its password dialog up}
  2070.  
  2071.      NOTE:
  2072.      See for more information the AfterDark Gestalt header file (See
  2073.      section 'Related Software' in the 'General Info' chapter for
  2074.      availability)
  2075. ApoL (Apollo ext [1.0] by Jeremy Roussak)
  2076.      gestaltApolloTable
  2077.      Returns a handle to an instance of a structure.
  2078.  
  2079.      gestaltApolloTable = 'ApoL'; {Apollo address}
  2080.  
  2081.      NOTE:
  2082.      See for more information the Programmers' Information chapter in the
  2083.      Apollo documentation. (Jeremy Roussak)
  2084. ASHI (Arashi app [???] by Juri Munkki)
  2085.      ???
  2086.      Returns information about the presence of Arashi by returning one (1)
  2087.      if loaded, and zero (0) when removed.
  2088. AuBu (AutoBuild ext [1.0] by Rene G.A. Ros)
  2089.      gestaltAutoBuildVersion
  2090.      Returns the version of AutoBuild as NumVersion.
  2091.  
  2092.      gestaltAutoBuildVersion = 'AuBu'; {AutoBuild version}
  2093.  
  2094.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  2095. BBlk (Basic Black cp [1.3], by Mason L. Bliss)
  2096.      gestaltBasicBlackAddr
  2097.      Returns the address of Basic Black's patch globals.
  2098.  
  2099.      gestaltBasicBlackAddr = 'BBlk'; {Basic Black address}
  2100.  
  2101.      NOTE:
  2102.      See documentation included with Basic Black for more information.
  2103. BIFF (QM Biff ext [1.0] by Patrick C. Beard)
  2104.      ???
  2105.      Determines if there is mail (QuickMail). The response long word is 1
  2106.      if you have mail, and 0 if you don't.
  2107. Cafe (Coffee Break appl [1.0] by Thomas Reed)
  2108.      gestaltCoffeeBreakAddr?
  2109.      Returns a pointer to a code resource owned by Coffee Break.
  2110.      Details are private.
  2111.  
  2112.      gestaltCoffeeBreakAddr? = 'Cafe';
  2113. CKI3 (AETracker cp [3.0] by C.K. Haun)
  2114.      gestaltAETrackerAddr
  2115.      This selector returns a pointer to the external interface routine for
  2116.      AETracker, details of which are in the AETracker interface guide.
  2117.      (C.K. Haun)
  2118.  
  2119.      gestaltAETrackerAddr = 'CKI3'; {AETracker address}
  2120. CsWT (Desktop Strip cp [1.0b1] by Sigurdur Asgeirsson)
  2121.      gestaltDesktopStripAttr?
  2122.      Returns information about the installed Desktop Strip software.
  2123.  
  2124.      gestaltDesktopStripAttr?    = 'CsWT';
  2125.      gestaltDesktopStripPresent? = 0;
  2126. dBgP (DBugR cp [1.0?] by Alessandro Levi Montalcini)
  2127.      ???
  2128.      Returns a pointer to a data structure with the preferences,
  2129.      identical to the data in the PREF resource, for which a template
  2130.      is included.
  2131.  
  2132.      NOTE: The d is actually the option-d character (ASCII $B6).
  2133. EagL (Eagle ext [1.4], part of Apollo 1.1 by Jeremy Roussak)
  2134.      gestaltEagleAttr?
  2135.      Returns information about the state of the Eagle background
  2136.      application.
  2137.  
  2138.      gestaltEagleAttr?     = 'EagL'; {Eagle attributes}
  2139.      gestaltEaglePPCReady? = 0;      {Eagle can accept next PPC}
  2140. FPUE (SoftwareFPU cp [3.0?] by John Neil & Associates) *M06
  2141.      gestaltSoftwareFPUAddr?
  2142.      Detects presence of SoftwareFPU.
  2143.      If the result of the Gestalt call is noErr, then SoftwareFPU is
  2144.      installed, and the 68881 FPU reported by the gestaltFPUType selector
  2145.      is an emulated FPU. The value returned in the response is private and
  2146.      should be ignored.
  2147.  
  2148.      gestaltSoftwareFPUAddr? = 'FPUE';
  2149. FrcP (Decor cp [1.0] by Francois Pottier)
  2150.      gestaltDecorAddr
  2151.      Returns a pointer to a structure which can be read or changed, and
  2152.      enables programmers to change the picture on the desktop.
  2153.  
  2154.      gestaltDecorAddr = 'FrcP'; {Decor address}
  2155.  
  2156.      NOTES:
  2157.      See for more information on how to use this structure the
  2158.      documentation included with Decor 1.0 or later.
  2159.  
  2160.      The c is actually the option-c character (ASCII $8D).
  2161. Gast (Gestalt! appl [2.9.2] by Roland Mansson)
  2162.      gestaltGestaltVersion
  2163.      Returns the version of the application as NumVersion.
  2164.      GestaltValue is removed when application quits. Just for fun.
  2165.      (Roland Mansson)
  2166.  
  2167.      gestaltGestaltVersion = 'Gast'; {Gestalt! version}
  2168.  
  2169.      NOTE: The a is actually the option-u/a character (ASCII $8A).
  2170. GTLK (GestaltTalk code by Brigham Stevens, Apple Computer DTS)
  2171.      ???
  2172.      Snippet code, see documentation. (See section 'Related Software'
  2173.      in the 'General Info' chapter for availability).
  2174. GWat (GestaltWatch ext [1.0] by Scot Bronson)
  2175.      ???
  2176.      Returns pointer to structure where collected information is stored.
  2177.  
  2178.      NOTE: In development, not yet available.
  2179. IF 8 (Speak Note cp [???] by Glenn R. Howes)
  2180.      gestaltSpeechNoteAttr?
  2181.      Returns information about the installed copy of Speak Note.
  2182.  
  2183.      gestaltSpeechNoteAttr?     = 'IF 8';
  2184.      gestaltSpeechNoteAvailable = 0;
  2185. Lnch (Network Time cp [2.0] by Pete Resnick)
  2186.      (First Launch Gestalt INIT code resource, by Pete Resnick)
  2187.      gestaltFirstLaunchAttr
  2188.      Returns info on whether the _Launch trap has been called by the
  2189.      System.
  2190.  
  2191.      gestaltFirstLaunchAttr = 'Lnch'; {_Launch information)
  2192.      gestaltFirstLaunchDone = 0;      {_Launch called, INIT time over}
  2193.  
  2194.      NOTE:
  2195.      Bit 0 of the response, gestaltFirstLaunchDone, indicates whether the
  2196.      _Launch trap has been called since startup of the machine. All other
  2197.      bits are reserved and currently 0. Even if not installed at INIT time,
  2198.      Network Time will install the Gestalt selector if it is not already
  2199.      there when the control panel is opened and automatically set
  2200.      bit 0 to 1.
  2201.      68000 assembler source code is available for the INIT that installs
  2202.      the selector, and INIT resource -4048 from Network Time may be
  2203.      stolen (and renumbered as desired) and used in any INIT file as
  2204.      desired. (Pete Resnick)
  2205. NIPX (Novell MacIPX cp [1.0.1] by Novell Inc.)
  2206.      gestaltNovellIPXVersion
  2207.      Returns the version of MacIPX as NumVersion.
  2208.  
  2209.      gestaltNovellIPXVersion = 'NIPX'; {MacIPX version}
  2210.  
  2211.      NOTE:
  2212.      If the selector returns an error (i.e. no such selector?) then MacIPX
  2213.      is not installed. If the selector returns 0 then MacIPX is installed
  2214.      but the driver is not open. Any other value is the version.
  2215.      (Duane Murphy)
  2216. NMBT (Attention cp [0.6] by Marco Piovanelli)
  2217.      gestaltAttentionAddr
  2218.      The response value returned is a pointer to a read-only parameter
  2219.      block in the system heap.
  2220.  
  2221.      gestaltAttentionAddr = 'NMBT'; {Attention address}
  2222.  
  2223.      NOTE: See for more detailed information the included ReadMe file.
  2224. NTim (Network Time cp [2.0] by Pete Resnick)
  2225.      ???
  2226.      Returns information private to Network Time.
  2227. PNfs (FileSaver [3.0], part of Norton Utilities for Macintosh)
  2228.      Returns a private structure used by various portions of the
  2229.      Norton Utilities.
  2230. PPP  (PPP mdev [???], part of MacPPP by Merit Network, Inc. and the
  2231.       University of Michigan)
  2232.      ???
  2233.      Returns the address of the Lap globals as documented in the header
  2234.      file 'ppp.h.source'. It's an absolutely enormous struct that contains
  2235.      among other things function pointers to let you open and close MacPPP.
  2236.      (Richard Buckle)
  2237.  
  2238.      ??? = 'PPP ';
  2239.  
  2240.      NOTE:
  2241.      Source code of MacPPP is available at:
  2242.      ftp://merit.edu/pub/ppp/mac/
  2243. PWRS (PwrSwitcher cp [1.0] by David B. Lamkins)
  2244.      gestaltPwrSwitcherTable
  2245.      Returns a pointer to a private data structure (undocumented).
  2246.  
  2247.      gestaltPwrSwitcherTable = 'PWRS'; {Power Switcher address}
  2248. SAVC (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2249.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2250.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2251.      gestaltScreenSaverControl *M05
  2252.      Returns a pointer to a procedure of type
  2253.  
  2254.      typedef pascal OSErr (*SaverControlProcPtr) (SaverCommand command);
  2255.  
  2256.      which allows controlling the screen saver.
  2257.  
  2258.      gestaltScreenSaverControl = 'SAVC';
  2259.  
  2260.      NOTE:
  2261.      See for more information the AfterDark Gestalt header file (See
  2262.      section 'Related Software' in the 'General Info' chapter for
  2263.      availability)
  2264. SAVR (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2265.      (Arashi app [???] by Juri Munkki)
  2266.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2267.      (Coffee Break app [1.0] by Thomas Reed)
  2268.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2269.      gestaltScreenSaverAttr *M05
  2270.      Returns information about the current screen saver. Defined if a
  2271.      screen saver is installed.
  2272.  
  2273.      gestaltScreenSaverAttr    = 'SAVR'; {Screen saver attributes}
  2274.      gestaltSaverTurnedOn      = 0;      {saver enabled/disabled}
  2275.      gestaltSaverAsleep        = 1;      {saver currently asleep}
  2276.      gestaltSaverDemoMode      = 2;      {saver sleeping in demo mode}
  2277.      gestaltSaverPasswordMode  = 3;      {saver sleeping in password-}
  2278.                                          {protected mode}
  2279.      gestaltAppDrawingDisabled = 4;      {QD drawing disallowed between}
  2280.                                          {module animation frames}
  2281.  
  2282.      NOTE:
  2283.      See for more information the AfterDark Gestalt header file (See
  2284.      section 'Related Software' in the 'General Info' chapter for
  2285.      availability)
  2286. SDdD (Shutdown Delay cp [2.0.1] by Alessandro Levi Montalcini)
  2287.      kSDDelayCreator
  2288.      Returns a pointer to a data structure described in the documentation
  2289.      included with Shutdown Delay.
  2290.  
  2291.      kSDDelayCreator = 'SDdD';
  2292.  
  2293.      NOTE: The d is actually the option-shift v character (ASCII $D7).
  2294. SHCM (Shared Code Manager ext [1.0] by Eric Schlegel of Microsoft Corp.)
  2295.      gestalt???
  2296.      Returns a pointer to an undocumented entrypoint into the Shared Code
  2297.      Manager.
  2298.  
  2299.      gestalt??? = 'SHCM';
  2300.  
  2301.      NOTE:
  2302.      The Shared Code Manager (1991) is a simple DLL mechanism that is
  2303.      currently used by Microsoft's Mac OLE 1.0 (Object Linking & Embedding)
  2304.      and the applications that use OLE 1.0. (Eric Schlegel)
  2305. SLip (StuffIt SpaceSaver ext [1.0?] by Aladdin Systems, Inc.)
  2306.      gestaltStuffItSpaceSaverAddr
  2307.      Returns the address of the SpaceSaver "command module" which allows
  2308.      developers to access all the functions of SpaceSaver.
  2309.      (Leonard Rosenthol)
  2310.  
  2311.      gestaltStuffItSpaceSaverAddr = 'SLip';
  2312. SPAL (SpeakAlert cp [1.0] by Brian Stern)
  2313.      gestaltSpeakAlert
  2314.      Details are private to SpeakAlert.
  2315.  
  2316.      gestaltSpeakAlert = 'SPAL';
  2317. TExT (FileTyper Menu cp [none], part of FileTyper by Daniel Azuma)
  2318.      gestaltTyperMenuAttr
  2319.      Returns information about the FileTyper Menu's operation.
  2320.  
  2321.      gestaltTyperMenuAttr = 'TExT';
  2322.      gestalt???           = 0;      {TRUE = NO item added to Finder's}
  2323.                                     {File menu}
  2324.  
  2325.      WARNING:
  2326.      No currently released version of FileTyper Menu (up to and including
  2327.      4.1.1) installs this selector, but future versions may. Check for the
  2328.      existence of this selector first, if you use it. (Daniel Azuma)
  2329. TMON (TMON Pro [3.0] by ICOM Simulations, Inc.)
  2330.      ???
  2331.      The value returned is a pointer to a Monitor information block. *M04
  2332.      (Scott Bronson)
  2333. Typ4 (FileTyper Menu cp [4.1.1], part of FileTyper by Daniel Azuma)
  2334.      gestaltTyperMenuPriv
  2335.      Returns private information, the existence of this selector indicates
  2336.      FileTyper Menu is installed.
  2337.  
  2338.      gestaltTyperMenuPriv = 'Typ4';
  2339.  
  2340.      NOTE:
  2341.      Third parties can determine if FileTyper Menu is installed by
  2342.      checking for the existence of this selector. However, the actual value
  2343.      returned is private and subject to change. (Daniel Azuma)
  2344. UMAM (Authentication Manager cp [1.0.7] by Robert John Churchill of the
  2345.                                            University of Michigan)
  2346.      gestaltAuthManVersion
  2347.      Returns the version of the Authentication Manager as Double BCD.
  2348.  
  2349.      gestaltAuthManVersion = 'UMAM';
  2350. YeHa (SpeedyFinder7 cp [1.5.4?] by Victor Tan)
  2351.      ???
  2352.      Returns a pointer to a private data structure (undocumented).
  2353.  
  2354.      NOTE:
  2355.      The structure to which the Gestalt selector refers changes almost
  2356.      invariably from version to version of SF7. Should someone work out
  2357.      parts of the structure of the selector keep in mind that it will
  2358.      almost certainly change in the next minor release and definitely with
  2359.      the next major release. (Victor Tan)
  2360.  
  2361. Unknown Gestalt Selector Codes
  2362. ==============================
  2363. The following sections list selector codes of which the meaning is unknown.
  2364.  
  2365. Apple Software
  2366. --------------
  2367. OSType(7) (System [6.0.4])
  2368.      Returns LongInt('carl') and a result code of noErr.
  2369. OSType(13) (System [6.0.4])
  2370.      Returns LongInt('bbmc') and a result code of noErr.
  2371. 3615 (Express Modem cp [1.0], part of Express Modem Software)
  2372. a pc (??? [???], part of System on Quadra 610-DOS?)
  2373. admn (AppleShare Admin appl [3.0])
  2374.      gestaltASAdminAttr?
  2375.  
  2376.      gestaltASAdminAttr?    = 'admn';
  2377.      gestaltASAdminPresent? = 0;
  2378. AgVU (Agent VU ext [2.0?], part of Virtual User)
  2379. afps (AppleShare ext [3.5?], part of System 7.5)
  2380.      Bits 0 and 16 set.
  2381. aint (System? [7.1.1?])
  2382.      NOTE: Returns 2 on a C660AV and Q840AV.
  2383. apml (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
  2384.      Bit 0 and 31 set.
  2385. aslm (Shared Library Manager ext [1.1.1?])
  2386.      (System? [???])
  2387.      gestaltSharedLibraryMgr?
  2388.      Returns the version of the Shared Library Manager as BCD in high word
  2389.      and information about the SLM in low word?
  2390.  
  2391.      gestaltSharedLibraryMgr? = 'aslm';
  2392.      gestaltSharedLibrary???  = 0;
  2393.      gestaltSharedLibrary???  = 1;
  2394.  
  2395.      NOTE:
  2396.      This selector appears to be both an attribute and version selector:
  2397.        - the version is BCD in the high word (confirmed in version 1.1.2
  2398.          and 2.0 doesn't contradict this)
  2399.        - the attributes are in the low order word (but I don't know the
  2400.          meanings)
  2401.      (John Mancino)
  2402. asps (AppleShare Print Server appl [3.0])
  2403.      gestaltASPrintServerAttr?
  2404.  
  2405.      gestaltASPrintServerAttr?    = 'asps';
  2406.      gestaltASPrintServerPresent? = 0;
  2407. AtEa (At Ease Startup [2.0?], part of At Ease for Workgroups)
  2408. bART (MacCheck app [1.0])
  2409. BaRT (MacCheck app [1.0])
  2410. bast (Performa cp [1.1], part of System 7.1P)
  2411. batt (Powerbook Duo Enabler [1.0])
  2412.      (System [7.5])
  2413.      (System Enabler 111 [1.0])
  2414.      (System Enabler 121 [1.0])
  2415.      (System Enabler 131 [1.0])
  2416.      (System Enabler 201 [1.0]))
  2417.      Returns information about the PowerBook battery?
  2418.  
  2419.      The debugger name for the routine which returns the response for this
  2420.      selector is called 'GETTIMELEFT'. But in what units? And what time?
  2421.      I've only seen the value 0, 5 or 6 returned. The GDEF calls the Power
  2422.      Manager (_PMgrOp [$A085 with D0=$00]) to get the info but I can't find
  2423.      which function. (Rene Ros)
  2424. brcn (Screen? cp [1.0?] on Color Classic)
  2425. brcN (Energy Saver cp [1.0?], part of Monitor Energy Saver)
  2426. bugx (System [7.5])
  2427.      (System Update ext [3.0])
  2428.  
  2429.      NOTE:
  2430.      The System Update reserves the 'bugx', â€˜bugy’ and â€˜bugz’ gestalt
  2431.      selectors to indicate which fixes are installed on a given machine.
  2432.      These are for Apple internal use only, and developers should not rely
  2433.      on these. There is no guarantee that they will be supported in future
  2434.      versions of Macintosh system software. *AT06
  2435. bugy (32-bit System Enabler [1.0])
  2436.      (Hardware System Update ext [1.0])
  2437.      (Network Launch Fix ext [1.0])
  2438.      (Sound Manager ext [3.0])
  2439.      (System? [7.1?])
  2440.      (System enabler 065)
  2441.      gestaltEnablerAttr?
  2442.  
  2443.      gestaltEnablerAttr?                  =  'bugy'; ?
  2444.      gestaltEnablerEgretDispatchPatch?    =  0; {these correct the system}?
  2445.      gestaltEnablerEgretTimePatch?        =  1; { clock and modem perf.}?
  2446.      gestalt???                           =  2; {unknown, Hardware Upd.}
  2447.      gestaltEnablerEgretTickHandlerPatch? =  3; { see bit 0 & 1}?
  2448.      gestalt???                           =  4; {unknown, Hardware Upd.}
  2449.      gestaltEnablerSCSIPatch?             =  5; {floppy drive fixed}?
  2450.      gestalt???                           =  6; {unknown, Hardware Upd.}
  2451.      gestaltEnabler32bit?                 =  7; {32-bit enabler present}?
  2452.      gestalt???                           =  9; {unknown, Sound Mgr 3.0}
  2453.      gestalt???                           = 11; {unknown, Hardware Upd.}
  2454.      gestalt???                           = 12; {unknown, Hardware Upd.}
  2455.      gestalt???                           = 13; {unknown, Hardware Upd.}
  2456.      gestalt???                           = 14; {unknown, Hardware Upd.}
  2457.      gestalt???                           = 15; {unknown, Hardware Upd.}
  2458.      gestalt???                           = 16; {unknown, Hardware Upd.}
  2459.      gestaltEnablerKeyboardPatch?         = 17; {corrects Adjustable Kbd
  2460.                                              gestaltKeyboardType response?}
  2461.      gestalt???                           = 18; {unknown, Hardware Upd.}
  2462.      gestalt???                           = 19; {unknown, ???}
  2463.      gestalt???                           = 24; {unknown, ???}
  2464.      gestalt???                           = 25; {unknown, ???}
  2465.      gestalt???                           = 26; {unknown, ???}
  2466.      gestaltNetworkLaunchFix?             = 27; {fix problem with appl. on}
  2467.                                                 {server launch with 68040}
  2468.      gestalt???                           = 28; {unknown, ???}
  2469.      gestalt???                           = 31; {unknown, ???}
  2470.  
  2471.      WARNING:
  2472.      These are ALL guesses. Well not entirely, I used the ResEdit CODE
  2473.      Editor to peek into the 32-bit System Enabler, Hardware System update
  2474.      and other software. Please check if I'am right. You should be able to
  2475.      find some of the answers in the INIT resource of the Hardware Update
  2476.      and the names of the PTCH resources in version 1.0 were also useful...
  2477.      The System Enablers (for new Macintosh models) don't seem to install
  2478.      or change any Gestalt selector to indicate their presence.
  2479.  
  2480.      NOTE:
  2481.      The System Update reserves the 'bugx', â€˜bugy’ and â€˜bugz’ gestalt
  2482.      selectors to indicate which fixes are installed on a given machine.
  2483.      These are for Apple internal use only, and developers should not rely
  2484.      on these. There is no guarantee that they will be supported in future
  2485.      versions of Macintosh system software. *AT06
  2486. bugz (System [7.0]/Tune-up ext)
  2487.  
  2488.      NOTE:
  2489.      The System Update reserves the 'bugx', â€˜bugy’ and â€˜bugz’ gestalt
  2490.      selectors to indicate which fixes are installed on a given machine.
  2491.      These are for Apple internal use only, and developers should not rely
  2492.      on these. There is no guarantee that they will be supported in future
  2493.      versions of Macintosh system software. *AT06
  2494. cate (Catalogs Extension? ext [???], part of System 7.1 Pro ?)
  2495.      Bit 0 set.
  2496. CDJR (Apple Menu Options cp [1.0], part of System 7.5)
  2497.      (ExtendedAppleMenu [???] by Chris Derossi)
  2498. cfmg (System [7.1.2 on PowerMac])
  2499. clbv (PowerTalk ext [1.0?], part of System 7.1 Pro and 7.5)
  2500.      Bit 0 set.
  2501. comp (QuickDraw Font Plus ext [???], part of the KanjiTalk 7.1)
  2502.  
  2503.      NOTES:
  2504.      The name "QuickDraw Font Plus" is translated from Japanese and may be
  2505.      translated differently by Apple Computer, Inc.
  2506.  
  2507.      I think 'comp' stands for 'composite', as the INIT contains patches to
  2508.      the Font Manager needed to handle 'composite font suitcases'.
  2509.      (Marco Piovanelli)
  2510. ctxm (???)
  2511. ddsk (Mount'em app [1.0b3] by Mike Wise and Chris Cotton of Apple Computer)
  2512.      Only installed if Mount'em driver is loaded. Looks like the highword
  2513.      contains the version (of driver or application?) as BCD, while the
  2514.      low-word is a mystery.
  2515.      
  2516.      NOTE:
  2517.      See also the 'mtem' selector installed by versions 1.0b1 and 1.0b2.
  2518. detc (???)
  2519. diag (Automated Diagnostics ext [1.0], part of Apple Personal
  2520.                                        Diagnostics 1.0)
  2521. doub (WorldScript II ext [7.2?], part of KanjiTalk7 and
  2522.                                  several language kits)
  2523.      gestaltDoubleByteScriptVersion?
  2524.      Returns the version of WorldScript II as BCD?
  2525.  
  2526.      gestaltDoubleByteScriptVersion? = 'doub';
  2527.  
  2528.      NOTE:
  2529.      This selector seems to be installed by WorldScript II (the
  2530.      System 7.1 ext needed to handle double-byte scripts like Japanese,
  2531.      Korean and Traditional Chinese). Known returned value is $0x0710.
  2532.      (Marco Piovanelli)
  2533. dude (Powerbook Duo Enabler [1.0])
  2534.      (System [7.5])
  2535.      (System Enabler 111 [1.0])
  2536.      (System Enabler 121 [1.0])
  2537.      (System Enabler 131 [1.0])
  2538.      (System Enabler 201 [1.0]))
  2539. dudi (Powerbook Duo Enabler [1.0])
  2540.      (System [7.5])
  2541.      (System Enabler 111 [1.0])
  2542.      (System Enabler 121 [1.0])
  2543.      (System Enabler 131 [1.0])
  2544.      (System Enabler 201 [1.0]))
  2545. fdbk (Speech Setup cp? [???], part of PlainTalk)
  2546. fdrs (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2547.      Installed by Finder extension?
  2548. fnda (Finder [7.1.1])
  2549.      NOTE: The a is actually the option-a character (ASCII $8C).
  2550. fnd& (Finder?, System? [7.1.2 on PowerMac?])
  2551.      NOTE: The & is actually the option-shift-a character (ASCII $E5).
  2552. fnd* (Finder [7.1.1])
  2553.      NOTE: The * is actually the shift-6 character (ASCII $F6).
  2554. fnd? (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2555.      Installed by Finder extension?
  2556. fnd  (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2557.      Installed by Finder extension?
  2558. fndc (Finder [7.1.1])
  2559. fndn (Finder?, System? [7.1.2 on PowerMac?])
  2560.      NOTE: The n is actually an option-n, n (ASCII $96).
  2561. FNDR (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2562.      Installed by Finder extension?
  2563. futr (ThreadsINIT ext [2.0?], part of Threads Package)
  2564. gFax (Fax Extension ext [1.1?], part of Express Modem Software)
  2565. gntz (System [7.1.2 on PowerMac])
  2566. gpad (System? [7.5?])
  2567. gprf (System? [7.5?])
  2568. HAM  (Apple Menu Options cp [1.0], part of System 7.5)
  2569.      (HAM ??? [???] by Inline Design)
  2570. harp (PowerBook cp? [7.2?])
  2571. hcsl (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2572. heap (System [7.1.2 on PowerMac])
  2573.      Bits 1 and 5 set.
  2574. hgfd (AppleShare File Server appl [3.0])
  2575.      gestaltASFileServerAttr?
  2576.  
  2577.      gestaltASFileServerAttr?    = 'hgfd';
  2578.      gestaltASFileServerPresent? = 0;
  2579. HrIt (HearIt cp [1.0])
  2580. iadj (System? [7.1.2?] with PowerTalk?)
  2581.      (Display Enabler ext, Icon relocation INIT ID#3 [1.0])
  2582. idsp (System? [7.1?] on Macs with sound input?)
  2583.      Values found: $FFFF FFFF, $0x000C, $0x0000
  2584. immg (??? [???] on PowerBook 520/540?)
  2585. intD (??? [???])
  2586.  
  2587.      NOTE:
  2588.      This is a mystery selector.  It isn't installed by any software, as
  2589.      far as I know, but the Finder 7.1 checks for this selector in certain
  2590.      situations. (Marco Piovanelli)
  2591. jkbd (??? (Japanese!) ext [1.0], part of KanjiTalk)
  2592. lang (WorldScript II ? ext [7.2?], part of KanjiTalk7 and
  2593.                                    several language kits)
  2594.      gestalt???Attr
  2595.      Returns information about the Language Manager?
  2596.  
  2597.      gestalt???Attr = 'lang';
  2598.      gestalt???     = 0;
  2599. ldap (???)
  2600. lngb (WorldScript II ? ext [7.2?], part of KanjiTalk7 and
  2601.                                    several language kits)
  2602.      Value found: $00001FFF.
  2603. lstk (Speech Setup cp? [???], part of PlainTalk)
  2604. ltma (Link Tool Manager ext [2.0?], part of Apple Remote Access 2.0)
  2605.      gestaltLinkToolVersion?
  2606.      Returns the version of the Link Tool Manager as NumVersion?
  2607.  
  2608.      gestaltLinkToolVersion? = 'ltma';
  2609.  
  2610.      NOTE:
  2611.      The only value I've seen returned was $02002008, which would mean
  2612.      '2.0d8' which was not correct since the 'vers' recource said '2.0f0'.
  2613.      The value is hardcoded in the .LTM Driver resource. (Rene Ros)
  2614. mash (System [7.1P?]/At Ease [1.0?])
  2615.  
  2616.      NOTE:
  2617.      The Starter cp (part of System 7.1P) and Launcher cp (part of
  2618.      System 7.5) both contain a 'mash' resource and includes a template for
  2619.      it. Can this be the same data-structure? (Rene Ros)
  2620. mbox (Mailbox Extension? ext [???], part of System 7.1 Pro ?)
  2621.      gestaltMailboxVersion?
  2622.      Returns version of Mailbox software as INTEGER.
  2623.      
  2624.      gestaltMailboxVersion? = 'mbox';
  2625. MClk (Date & Time cp [7.5], part of System 7.5)
  2626.      (SuperClock! cp [4.0] by Steve Christensen)
  2627. mfdr (At Ease [1.0])
  2628. mjik (MenuMagic ext [1.0], part of System 7.1 Pro and 7.5)
  2629. mtem (Mount'em app [1.0b1-1.0b2] by Mike Wise and Chris Cotton of
  2630.                                     Apple Computer)
  2631.      Only installed if Mount'em driver is loaded. Looks like the highword
  2632.      contains the version (of driver or application?) as BCD, while the
  2633.      low-word is a mystery.
  2634.  
  2635.      NOTE:
  2636.      See also the 'ddsk' selector installed by version 1.0b3 and later.
  2637. mtv! (TV Setup cp [1.0], part of System for Macintosh TV?)
  2638.  
  2639.      NOTE:
  2640.      Not seen installed, disassembled control panel, meaning unknown.
  2641.      It's probably an address. (Rene Ros)
  2642. mtv2 (Video Startup ext [1.0], part of European Video Installer)
  2643. NubA (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  2644. NubD (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  2645. NubH (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  2646. NubV (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  2647. octb (??? [???] on PowerBook 520/540?)
  2648. ot   (??? [???])
  2649.      gestaltOpenTransportAttr?
  2650.      Returns information about the Open Transport software?
  2651.  
  2652.      gestaltOpenTransportAttr?    = 'ot  ';
  2653.      gestaltOpenTransportPresent? = 0;
  2654. PhoN (PowerBook Setup cp [7.3.1?], PhoneINIT INIT resource)
  2655. port (Powerbook Duo Enabler [1.0])
  2656.      (System [7.5])
  2657.      (System Enabler 111 [1.0])
  2658.      (System Enabler 121 [1.0])
  2659.      (System Enabler 131 [1.0])
  2660.      (System Enabler 201 [1.0])
  2661.      gestaltPortAttr?
  2662.      Returns information about the ports?
  2663.  
  2664.      gestaltPortAttr?           = 'port';
  2665.      gestaltHasInternalModem?   = 0?;
  2666.      gestaltHasExternalPrinter? = 1?;
  2667.      gestaltHasExternalModem?   = 2?;
  2668.  
  2669.      NOTE:
  2670.      System Enabler 201 and PowerBook Duo enabler contain an GDEF resource
  2671.      which indicates bits 0, 1 and 2 can be set. (Rene Ros)
  2672. ppad (Performa cp [1.1], part of System 7.1P)
  2673. pprf (Performa cp [1.1], part of System 7.1P)
  2674. ptlk (Speech Setup cp? [???], part of PlainTalk)
  2675. pxtn (At Ease app [2.0?])
  2676. Remt (AutoRemounter cp [???])
  2677. reno (Apple Guide ext [1.2?], part of System 7.5)
  2678.      gestaltAppleGuideAttr?
  2679. serh (System? [7.1.2?])
  2680.      gestaltSerialHardware?
  2681.      Returns type of hardware used for serial I/O?
  2682.  
  2683.      gestaltSerialHardware? = 'serh'; {Serial Hardware}
  2684.      gestaltClassicSer?     = 'Clas'; {returned on PPC 8100/80 (GeoPort?)}
  2685. shal (System [7.1?])
  2686.  
  2687.      NOTE: Returns 2 on PowerMac and 1 on Centris 660AV
  2688. slnk (MNPLinkTool? [1.0], part of Apple Remote Access)
  2689. sndx (Sound Manager ext [3.0]?)
  2690.      gestaltSoundMgrAttr?
  2691.  
  2692.      gestaltSoundMgrAttr?    = 'sndx'?;
  2693.      gestaltSoundMgrPresent? = 0?
  2694. thng (ThreadsINIT ext [2.0?], part of Threads Package)
  2695. thrd (ThreadsINIT ext [2.0?], part of Threads Package)
  2696. tpad (System? [7.5?] on PowerBook 520/540?)
  2697. tv   (Video Startup ext [1.0], part of European Video Installer)
  2698. udsk (System [7.1.2 on PowerMac])
  2699. udsv (System [7.1.2 on PowerMac])
  2700. vdrc (PC Exchange? cp [1.0?])
  2701. vmbs (System [7.0])
  2702.      (RAM Doubler [1.0] by Connectix Corporation)
  2703.      gestaltVMBackingStoreRef?
  2704.      Returns the file reference number of the Virtual Memory storage file
  2705.      if VM is present.
  2706.  
  2707.      gestaltVMBackingStoreRef? = 'vmbs';
  2708. vmcl (System, VM on [7.0])
  2709. vmem (RAM Doubler [1.0] by Connectix Corporation)
  2710.      gestaltVMExtensionMgr?
  2711.      Returns type of software used to extend the Virtual Memory Mgr?
  2712.  
  2713.      gestaltVMExtensionMgr? = 'vmem';
  2714.      gestaltRAMDoubler?     = 'RaM2';
  2715.  
  2716.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  2717.  
  2718. Third Parties Software
  2719. ----------------------
  2720. *DC* (DepthCharge cp [???] by Maf Vosburgh)
  2721. AClk (AutoClock Extension ext [1.3?] by Jean-Pierre Gachen)
  2722. ADex (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2723. ADii (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2724.  
  2725.      NOTE:
  2726.      Not installed by AfterDark but the GDEF indicates it is able to return
  2727.      a response.
  2728. ADr2 (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2729.  
  2730.      NOTE:
  2731.      Not installed by AfterDark but the GDEF indicates it is able to return
  2732.      a response.
  2733. ADRC (DDExpand appl [3.7.7?] by Fifth Generation Systems)
  2734. ADTK (Talk*Control cp [???] by 2Way Computing, Inc.)
  2735. AlaC (A La Carte cp [1.1?] by Denali Software Development)
  2736. AP00..AP06
  2737.      (RapidLock cp or RapidTrak cp [1.1], part of RapidTrak software by
  2738.       Insignia Solutions Inc.)
  2739.      It seems these selectors are installed for each harddisk connected to
  2740.      your Macintosh. The last two bytes of the selector are the SCSI ID.
  2741.      Although the third byte can mean something else, because perhaps
  2742.      'AP17' (listed below) is probably also installed by
  2743.      RapidLock/RapidTrack.
  2744. AP17 (???)
  2745. ApWi (ApplWindows cp [2.0?] by Hiro Yamamoto)
  2746. ASTN (Asante EN/SC ext [???] by Asante Technologies, Inc.)
  2747. aYmm (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2748. AzNe (NameView cp [2.7?] by AStar Technologies, Inc.)
  2749. A–Tr (Trapper ext [1.0?] by Alessandro Levi Montalcini)
  2750. Blad (Blood cp [1.0.1?] by Alessandro Levi Montalcini)
  2751.      NOTES:
  2752.      The B is actually the option-s character (ASCII $A7).
  2753.      The d is actually the option-d character (ASCII $B6).
  2754. bMRN (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
  2755.       by NOW Software)
  2756. CHSR (ChooserUser [1.2?] by Maurice Volaski)
  2757. CiCN (Color ICON Mania cp [1.0] by Yosuke Suzuki)
  2758. DanS (PowerClick cp [1.0] by Daniel A. Segel)
  2759. DCDt (NoDesktopCleanup cp [1.0?] by Alessandro Levi Montalcini)
  2760. DCKc (Keys! cp [1.0] by Stefan Kurth)
  2761.  
  2762.      NOTE: The lowercase c is actually the control-q (Command key sign)
  2763.      character (ASCII $11).
  2764. DD37 (DiskDoubler [3.7] by Fifth Generation Systems, Inc.)
  2765. DDAD (AutoDoubler cp [1.0?] by Fifth Generation Systems, Inc.)
  2766. DFlh (DiskFlash cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  2767. DlgV (Dialog View cp [2.11], formerly List Font cp by James W. Walker)
  2768.      See also 'LFnt'.
  2769. Dpth (DepthMaster cp [1.0] by Victor Tan)
  2770. DWG! (Volume Menu cp [1.0] by David Gladstone, Chris Burns, Julian Harris)
  2771. EM20 (Extensions Manager cp [2.0] by Ricardo Batista)
  2772. ESCa (Escapade cp [1.0?] by Christopher R. Wysocki)
  2773. ESOC (Serial of Champions ext [???] by Mike Throckmorton)
  2774. Extn (NOW Startup Manager cp [4.0?], part of NOW Utilities 4.0.1p package
  2775.       by NOW Software)
  2776. Fie  (Icon7 ext [???] by Inline Designs)
  2777.      gestaltIcon7?
  2778. fPth (FinderPaths cp? [???])
  2779.  
  2780.      NOTE: The f is actually the option-f character (ASCII $C4).
  2781. fmci (FinderMenu INIT ext [1.0], part of UserLand's Frontier Runtime
  2782.       package)
  2783. FtCg (FontPatchin cp [2.0?] by Keisuke Hara)
  2784. FW14 (FileWave Administrator ext [2.0?], part of FileWave 2.0
  2785.       by Wave Research)
  2786. FWCP (File Tracker Controls cp [1.0] by Mark Aiken)
  2787. fWmM (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
  2788.       by NOW Software)
  2789. GrEG (Greg's Buttons ext [3.1.4?] by Greg Landweber)
  2790. GtOp (MenuExtend cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  2791. gV00 (PowerPort cp? [???])
  2792. gV01 (PowerPort cp? [???])
  2793. gV02 (PowerPort cp? [???])
  2794. gV03 (PowerPort cp? [???])
  2795. gV04 (PowerPort cp? [???])
  2796. He20 (Helium cp [1.0?] by Robert L. Mathews)
  2797. HEID (Incognito cp [1.0?] by Manuel Veloso)
  2798. HPBG (HP Background ext [3.0?] by Hewlett-Packard Company)
  2799.      GDEF always returns value 1.
  2800. HtLk (Reference Link ext [1.0] by James W. Walker)
  2801. iHnd (Invisible Hand cp [1.0] by Carl Mauer)
  2802.  
  2803.      NOTE:
  2804.      Because this cp patches the _Random trap you can use this selector to
  2805.      determine its presence and refuse to continue.
  2806. Intj (Interjection ext [???])
  2807. JAiN (Rival cp by Inline Designs)
  2808.      gestaltRival
  2809.  
  2810.      NOTE: The i is actually the option-u/i character (ASCII $95).
  2811. jsm1 (???)
  2812. JXNM (NowMenus cp [4.0?], part of NOW Utilities 4.0.1p package
  2813.       by NOW Software)
  2814. KBCF (Easy KEYS cp [1.5] by Kerry Clendinning)
  2815. KBCM (???)
  2816. KQae (KQ Apple Events ext [???], part of KeyQuencer
  2817.                                  by Alessandro Levi Montalcini)
  2818. KQue (KeyQuencer cp [???], part of KeyQuencer
  2819.                            by Alessandro Levi Montalcini)
  2820. LFnt (Dialog View cp [???], formerly List Font cp by James W. Walker)
  2821.      See also 'DlgV'.
  2822. LNCH (Talk*Control cp [???] by 2Way Computing, Inc.)
  2823. LxRZ (Retro.SCSI? ext [2.0?], part of Retrospect by Dantz Development
  2824.       Corporation)
  2825.      (Remote? cp [2.0?], part of Retrospect by Dantz Development
  2826.       Corporation)
  2827. Mgc! (Wizard INIT ext [1.0], part of Disk Wizard by Francois Pottier)
  2828. MJC& (AutoMenus II cp [???] by Michael Conrad)
  2829. MV10 (TearOFF cp [???] by Bad Boys' Software)
  2830. nOAg (??? cp [1.2?], part of netOctopus by Pole Position)
  2831. nOAv (??? cp [1.2?], part of netOctopus by Pole Position)
  2832.      Returns version as NumVersion?
  2833. NGst (NokNok cp [1.0?])
  2834. NkNk (NokNok cp [1.0?])
  2835. NowT (NOW Toolbox ext [4.0?], part of NOW Utilities 4.0.1p package,
  2836.       by NOW Software)
  2837. PBUf (???)
  2838. PBUt (???)
  2839. PRT+ (PrintAid [0.9?] by James W. Walker)
  2840. PtrP (PrintPatrol [1.0] by Randy DeRuiter and John Champion)
  2841. QRef (QuickRef ext? [1.0] by Scott Bronson)
  2842. ReSp (File Tracker Controls cp [1.0] by Mark Aiken)
  2843. RQDC (DropCheck cp [???] by Ronald B. Queloz)
  2844. SCTR (FaxMonitor ext [1.6?], part of FAXcilitate by PSI)
  2845. SDIT (???)
  2846. SEcl (ScreenEclipse cp [1.0], part of ALSoft Power Utilities by
  2847.       ALSoft, Inc.)
  2848. SFun (SF Windows [1.0] by Damon Cokenias)
  2849. SFwd (Open-wide cp [3.0?] by James W. Walker)
  2850. SLi2 (StuffIt SpaceSaver ext by Aladdin Systems, Inc. ?)
  2851. SNIT (Snitch ext [1.0] by Mitch Jones)
  2852. SPLO (SpigotVDIG ext [1.0] by SuperMac Technology)
  2853. ST20 (Snap-To cp [2.0?] by Trevden Sherzell)
  2854. STYH (StayHere! cp [2.0?] by Nobuhiro Miyatake)
  2855. TgrX (Xmas Lights cp [1.0] by Tiger Technologies)
  2856. Tmon (TMON Pro cp? [3.0] by ICOM Simulations)
  2857. UlOn (UndelineEnabler ext [2.0?], part of FontPachin package by
  2858.       Keisuke Hara)
  2859.      See also FtCg selector.
  2860. View (StuffIt Viewer Engine [???] by Aladdin Systems Inc.)
  2861.      gestaltViewerEngine
  2862.      The gestalt selector is not installed until someone (StuffIt) invokes
  2863.      the engine.
  2864. vmFn (RAM Doubler [1.0] by Connectix Corporation)
  2865.      Seems to return a memory address, perhaps to a function to control
  2866.      Virtual Memory?
  2867.  
  2868.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  2869. WARE (???)
  2870. WREO (Replace Existing Options cp [???] by Jonathon Summers)
  2871.  
  2872.      NOTE: The W is actually the option-w character (ASCII $B7).
  2873. Wttf (TeachText7.0 Font ext [???] by Jonathon Summers)
  2874.  
  2875.      NOTE: The W is actually the option-w character (ASCII $B7).
  2876. *Men (OtherMenu ext [1.0] by James W. Walker)
  2877.  
  2878. Gestalt Manager Calls
  2879. =====================
  2880. All standard calls to the _Gestalt or _GestaltValueDispatch trap are listed
  2881. in this chapter.
  2882.  
  2883. Gestalt Manager Routines
  2884. ------------------------
  2885. The CallSelectorFunctionProc and NewSelectorFunctionProc functions were
  2886. listed in the GestaltEqu.h file on E.T.O. #12 CD-ROM but not yet fully
  2887. documented.
  2888.  
  2889. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  2890.      Available since System 6.0.4.
  2891.      Trap Macro
  2892.        _Gestalt ($A1AD)
  2893.      Registers on entry   D0: selector code
  2894.      Registers on exit    A0: response
  2895.                           D0: result code
  2896.      Result codes
  2897.        noErr                       0 No error
  2898.        gestaltUnknownErr       -5550 Could not obtain the response
  2899.        gestaltUndefSelectorErr -5551 Undefined selector
  2900. FUNCTION NewGestalt (selector: OSType; selectorfunction: ProcPtr): OSErr
  2901.      Available since System 6.0.4.
  2902.      Trap Macro
  2903.        _NewGestalt ($A3AD)
  2904.      Registers on entry   A0: address of new selector function
  2905.                           D0: selector code
  2906.      Registers on exit    D0: result code
  2907.      Result codes
  2908.        noErr                       0 No error
  2909.        memFullErr               -108 Ran out of memory
  2910.        gestaltDupSelectorErr   -5552 Selector already exists
  2911.        gestaltLocationErr      -5553 Function not in system heap
  2912. FUNCTION ReplaceGestalt (selector: OSType; selectorfunction: ProcPtr;
  2913.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  2914.      Available since System 6.0.4.
  2915.      Trap Macro 
  2916.        _ReplaceGestalt ($A5AD)
  2917.      Registers on entry   A0: address of new selector function
  2918.                           D0: selector code
  2919.      Registers on exit    A0: address of old selector function
  2920.                           D0: result code
  2921.      Result codes
  2922.        noErr                       0 No error
  2923.        gestaltUndefSelectorErr -5551 Undefined selector
  2924.        gestaltLocationErr      -5553 Function not in system heap
  2925. #define CallSelectorFunctionProc(userRoutine, selector, response)  \
  2926.         (*userRoutine)(selector, response)
  2927.      Trap Macro 
  2928.        ??? (???)
  2929.      Registers on entry   ???
  2930.      Registers on exit    ???
  2931.      Result codes
  2932.        noErr                       0 No error
  2933.        ???                       ??? ???
  2934. #define NewSelectorFunctionProc(userRoutine)  \
  2935.         (SelectorFunctionUPP)(userRoutine)
  2936.      Trap Macro 
  2937.        ??? (???)
  2938.      Registers on entry   ???
  2939.      Registers on exit    ???
  2940.      Result codes
  2941.        noErr                       0 No error
  2942.        ???                       ??? ???
  2943.          
  2944. Undocumented Gestalt Manager Routines
  2945. -------------------------------------
  2946. FUNCTION? GestaltDispatch? (???):OSErr;?
  2947.      Trap Macro
  2948.        _GestaltDispatch ($A0AD)
  2949.      Registers on entry   ???
  2950.      Registers on exit    ???
  2951.      Result codes
  2952.        noErr                       0 No error
  2953.        ???
  2954.  
  2955.      NOTE:
  2956.      Found in the MPW, THINK C and THINK Pascal Traps Interface file
  2957.      on 'Bookmark CD 14'.
  2958.      Available since System 6.0.4 but code will always return error -50
  2959.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  2960. FUNCTION? GetGestaltProcPtr? (selector?: OSType;
  2961.                               var selectorfunction: ProcPtr): OSErr;?
  2962.      Trap Macro
  2963.        _GetGestaltProcPtr ($A7AD)
  2964.      Registers on entry   D0: selector code?
  2965.      Registers on exit    ??: address of selector function
  2966.      Result codes
  2967.        noErr                       0 No error
  2968.        ???
  2969.  
  2970.      NOTE:
  2971.      Found in the MPW Traps Interface file on 'Bookmark CD 14'.
  2972.      Available since System 6.0.4 but code will always return error -50
  2973.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  2974.      I (Rene Ros) have written Pascal code to do what this system call
  2975.      probably is planned to do in the future.
  2976.  
  2977. Gestalt Value Routines
  2978. ----------------------
  2979. Please note the GestaltValue routines can be invoked through a library,
  2980. but since System 7.5 the GestaltValue routines are also part of the OS.
  2981. The GestaltValue routines are stack based and don't use registers.
  2982. The GestaltValue library first checks to see if trap $ABF1 is implemented
  2983. (System 7.5 and later). If trap $ABF1 is implemented, all calls to the
  2984. library are routed to this trap, otherwise the library uses embedded code.
  2985. Several Apple System selectors use the GestaltValueDispatch A-trap to
  2986. install the response value starting with System 7.5.
  2987.  
  2988. WARNING:
  2989. The GestaltValue library distributed originally checks for the wrong trap
  2990. (_ThreadDispatch, $ABF2). Make sure your software doesn't crash when this
  2991. trap is installed by the Thread Manager extension. See the Related Software
  2992. section in the 'General Info' chapter for availability.
  2993. (Most info about the GestaltValue functions was provided by
  2994. Marco Piovanelli and Dave Radcliffe).
  2995.  
  2996. FUNCTION NewGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  2997.      Available as library and since System 7.5.
  2998.      Trap Macro                      Selector
  2999.        _GestaltValueDispatch ($ABF1) $0401
  3000.      Result codes
  3001.        noErr                       0 No error
  3002.        unimpErr                   -4 Unimplemented core routine
  3003.        memFullErr               -108 Ran out of memory
  3004.        (and other memory errors)
  3005.        gestaltDupSelectorErr   -5552 Selector already exists
  3006. FUNCTION ReplaceGestaltValue (selector: OSType;
  3007.                               replacementValue: LongInt): OSErr;
  3008.      Available as library and since System 7.5.
  3009.      Trap Macro                      Selector
  3010.        _GestaltValueDispatch ($ABF1) $0402
  3011.      Result codes
  3012.        noErr                       0 No error
  3013.        unimpErr                   -4 Unimplemented core routine
  3014.        memFullErr               -108 Ran out of memory
  3015.        (and other memory errors)
  3016.        gestaltUndefSelectorErr -5551 Undefined selector
  3017. FUNCTION DeleteGestaltValue (selector: OSType): OSErr;
  3018.      Available as library and since System 7.5.
  3019.      Trap Macro                      Selector
  3020.        _GestaltValueDispatch ($ABF1) $0203
  3021.      Result codes
  3022.        noErr                       0 No error
  3023.        unimpErr                   -4 Unimplemented core routine
  3024.        gestaltUndefSelectorErr -5551 Undefined selector
  3025.  
  3026. Kilo-liners
  3027. ===========
  3028. This chapter will list very small pieces of code which are related to
  3029. any Gestalt Routine.
  3030.  
  3031. Direct Gestalt Calls
  3032. --------------------
  3033. You can use the following code to call directly the Gestalt, NewGestalt and
  3034. ReplaceGestalt traps. In that way the (large) glue code will not be
  3035. installed by your compiler. (Contributions by Lawrence D'Oliveiro and
  3036. Marco Piovanelli).
  3037.  
  3038. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  3039.    inline $225F, $201F, $A1AD, $2288, $3E80;
  3040.       { move.l (sp)+, a1 }
  3041.       { move.l (sp)+, d0 }
  3042.       { _Gestalt }
  3043.       { move.l a0, (a1) }
  3044.       { move.w d0, (sp) }
  3045.  
  3046. FUNCTION NewGestalt (selector: OSType;
  3047.                      gestaltFunction: ProcPtr): OSErr;
  3048.    inline $205F, $201F, $A3AD, $3E80;
  3049.       { move.l (sp)+, a0 }
  3050.       { move.l (sp)+, d0 }
  3051.       { _NewGestalt }
  3052.       { move.w d0, (sp) }
  3053.  
  3054. FUNCTION ReplaceGestalt (selector: OSType;
  3055.                          gestaltFunction: ProcPtr;
  3056.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  3057.    inline $225F, $205F, $201F, $A5AD, $2288, $3E80;
  3058.       { move.l (sp)+, a1 }
  3059.       { move.l (sp)+, a0 }
  3060.       { move.l (sp)+, d0 }
  3061.       { _ReplaceGestalt }
  3062.       { move.l a0, (a1) }
  3063.       { move.w d0, (sp) }
  3064.  
  3065. Direct GestaltValue Calls
  3066. -------------------------
  3067. You can use the following code to call directly the NewGestaltValue,
  3068. ReplaceGestaltValue and DeleteGestaltValue when the _GestaltValueDispatch
  3069. trap is available. *AS04
  3070.  
  3071. FUNCTION NewGestaltValue(selector: OSType, newValue: LongInt): OSErr;
  3072.    inline $303C, $0401, $ABF1;
  3073.  
  3074. FUNCTION ReplaceGestaltValue(selector: OSType,
  3075.                              replacementValue: LongInt): OSErr;
  3076.    inline $303C, $0402, $ABF1;
  3077.      
  3078. FUNCTION DeleteGestaltValue(selector: OSType): OSErr;
  3079.    inline $303C, $0203, $ABF1;
  3080.  
  3081. GestaltSelectorZero
  3082. -------------------
  3083. With all the selectors that are supposed to return non-zero values if
  3084. installed, it may be helpful to have an utility routine that returns a zero
  3085. value (instead of an error) if a selector isn't installed. It's short and
  3086. sweet because it makes a direct call to the _Gestalt trap; of course this
  3087. means you can't use it on systems earlier than 6.0.4.
  3088. (Contributed by Lawrence D'Oliveiro)
  3089.  
  3090. FUNCTION GestaltSelectorZero (Selector: OSType): LongInt;
  3091. {returns the value of the specified Gestalt selector,}
  3092. {or zero if unknown.}
  3093.    inline $201F, $A1AD, $6702, $91C8, $2E88;
  3094.       { move.l (sp)+, d0 }
  3095.       { _Gestalt }
  3096.       { beq.s @2 }
  3097.       { sub.l a0, a0 }
  3098.       { @2: move.l a0, (sp) }
  3099.  
  3100. GestaltBitTest
  3101. --------------
  3102. The GestaltBitTest is a piece of inline assembly code which tests if the
  3103. specified bit is set in the value from the specified Gestalt selector
  3104. (false if the Gestalt call returns an error).
  3105.  
  3106. Example:
  3107.     GestaltBitTest(gestaltAppleEventsAttr, gestaltAppleEventsPresent)
  3108.  
  3109. (Contributed by Lawrence D'Oliveiro)
  3110.  
  3111. FUNCTION GestaltBitTest(Selector: OSType; BitNr: Integer): Boolean;
  3112.    inline
  3113.       $321F, $201F, $A1AD, $6702, $91C8, $2008, $0300, $56C0, $4400, $1E80
  3114.       { move.w (sp)+, d1 }
  3115.       { move.l (sp)+, d0 }
  3116.       { _Gestalt }
  3117.       { beq.s @2 }
  3118.       { sub.l a0, a0 }
  3119.       { @2: move.l a0, d0 }
  3120.       { btst d1, d0 }
  3121.       { sne.b d0 }
  3122.       { neg.b d0 }
  3123.       { move.b d0, (sp) }
  3124.  
  3125. Call Gestalt Function Direct
  3126. ----------------------------
  3127. Suppose you have just loaded an GDEF resource, or replaced one and keep the
  3128. original around and store a pointer to it somewhere private. Suppose next,
  3129. you want to call it to obtain a response without using yet another selector.
  3130. Thats what the following inline code is useful for. Just pass it the
  3131. usual selector and result parameters but also a pointer to the GDEF
  3132. (Lock it if it's a relocatable block).
  3133.  
  3134. FUNCTION CallGestaltDEF (selector: OSType;
  3135.                          var result: LongInt;
  3136.                          aRoutine: ProcPtr): OSErr;
  3137.     inline $205F, $4E90;
  3138.        { move.l (sp)+, a0 }
  3139.        { jsr (a0) }
  3140.  
  3141. Reports
  3142. =======
  3143. When someone reports some findings involving several selectors and/or a
  3144. report is too long to include with the selector entry above, that report
  3145. is listed here. They should be as short as possible with the maximum
  3146. amount of information.
  3147.  
  3148. AppleShare File & Print Server selector codes
  3149. ---------------------------------------------
  3150. The selectors are defined when the application has run. If it is still
  3151. running (or wasn't properly quit) the response is one. When the application
  3152. has properly quit the response is zero.
  3153.      admn AppleShare Admin
  3154.      asps AppleShare Print Server
  3155.      hgfd AppleShare File Server
  3156. (these three are undocumented)
  3157.  
  3158. AppleTalk
  3159. ---------
  3160. With the release of the System 7 Tuner product, AppleTalk will not be
  3161. loaded at startup, if prior to the previous shutdown AppleTalk was turned
  3162. off in the Chooser. Under this circumstance, the 'atkv' selector is not
  3163. available. If the 'atkv' selector is not available under System 7, this is
  3164. an indicator that AppleTalk cannot be turned on without doing so in the
  3165. Chooser and rebooting the system. *AT02
  3166.  
  3167. Copy protection using Gestalt
  3168. -----------------------------
  3169. In Develop 17 Brigham Stevens suggests to use Gestalt and FindFolder as a
  3170. way to implement copy protection in the most compatible way possible.
  3171. By determining several characteristics at installation from the Gestalt Mgr
  3172. and the DirID of the System Folder with FindFolder you can check for this
  3173. info later. When is has changed you can then ask for the serial number
  3174. or a password again. (Rene Ros)
  3175.  
  3176. Environs & SysEnvirons
  3177. ----------------------
  3178. Using Macsbug it is very easy to determine that the SysEnvirons function
  3179. uses the Gestalt Manager to fill the fields of the system environment
  3180. record. So, when you install your own gestalt definitions by using the
  3181. ReplaceGestalt function this will also change the information returned
  3182. by SysEnvirons.
  3183. The older Environs function doesn't use the Gestalt Mgr and the code
  3184. seems to look only at two values in ROM. (Rene Ros)
  3185.  
  3186. Executor Mac-emulator
  3187. ---------------------
  3188. Executor is a Macintosh Emulator for DOS machines, published by
  3189. Abacus Research and Development, Inc. (1993/1994). The Gestalt Manager is
  3190. also emulated and the version I have seen (on a 486DX) says it's a MacPlus
  3191. with a 68LC040 processor with MMU. The 'sysv' selector returns 0x607 but
  3192. it also lists a lot of selectors usually not installed by 6.0.7. Like
  3193. the 'edtn' and 'stdf' selectors. For those it then simply returns zero.
  3194. Strangely enough the 'tabl' selector is not installed, but this doesn't
  3195. confuse the Gestalt! application! (Rene Ros)
  3196.  
  3197. GestaltValue
  3198. ------------
  3199. The first time you call NewGestaltValue, the library installs two non-
  3200. relocatable blocks in the system heap and the 'gval' gestalt selector. One
  3201. of the blocks is filled with code: it's actually a gestalt definition that
  3202. implements GestaltValue's shared mechanism. The second block contains the
  3203. selectors and values GestaltValue manages. The response returned by the
  3204. 'gval' selector is a pointer to the second non-relocatable block in the
  3205. system heap. (Marco Piovanelli)
  3206.      
  3207. Dave Radcliffe wrote on 23 March 1993 regarding some information, about the
  3208. GestalValue glue code, listed with version 1.4 of this list:
  3209. ---------------------------------------------------------------------------
  3210. The information on the _GestaltValue trap ($ABF2) is correct based on the
  3211. glue, but because of a mistake on my part, the glue should be checking for
  3212. $ABF1. A new version of the glue is being distributed on the developer CD
  3213. next month. If developers need the fixed version sooner, or don't have
  3214. access to the CD, they can write to me at:
  3215.  
  3216. radcliff@apple.com
  3217.  
  3218. and I'll send them the fixed version.
  3219. ---------------------------------------------------------------------------
  3220.  
  3221. Glue code
  3222. ---------
  3223. These development/compiler software contain glue-code to handle a few
  3224. selectors even when the Gestalt Manager is not available.
  3225.  
  3226.      THINK C      (5.0 and later)
  3227.      THINK Pascal (4.0 and later)
  3228.      MPW          (3.2 and later)
  3229.  
  3230. The following selectors can be handled by the glue-code, with all others
  3231. an error (gestaltUndefSelectorErr) will be returned.
  3232.  
  3233.      gestaltAppleTalkVersion = 'atlk';
  3234.      gestaltFPUType          = 'fpu ';
  3235.      gestaltKeyboardType     = 'kbd ';
  3236.      gestaltLogicalRAMSize   = 'lram';
  3237.      gestaltMachineType      = 'mach';
  3238.      gestaltMMUType          = 'mmu ';
  3239.      gestaltPhysicalRAMSize  = 'ram ';
  3240.      gestaltProcessorType    = 'proc';
  3241.      gestaltQuickdrawVersion = 'qd  ';
  3242.      gestaltSystemVersion    = 'sysv';
  3243.      gestaltVersion          = 'vers';
  3244.  
  3245. Unless you are using direct calls, ofcourse.
  3246. (Source: THINK Reference 2.0)
  3247.  
  3248. PPC Libraries
  3249. -------------
  3250. Some of the Gestalt selector functions are smart enough to avoid crashing
  3251. when the user removed the library file from the Extensions folder without
  3252. restarting the machine. And some selector functions aren't that smart.
  3253. Safest is to preflight the first call you make into the library (for code
  3254. or data) or include a preflight in your startup. 
  3255. (based on a posting by John Baxter in the comp.sys.mac.programmer Usenet
  3256. newsgroup on Internet.)
  3257.  
  3258. QuickTime
  3259. ---------
  3260. If you install QuickTime under System 6, a major portion of the Alias
  3261. Manager and FSSpec support is also added. But, QT doesn't implement the
  3262. Gestalt selectors because the implementation is not complete. You must
  3263. check for either Alias Mgr or QuickTime. (Michael Hecht)
  3264.  
  3265. These are the limitations for the Alias Mgr installed by QuickTime:
  3266.   - NewAlias will accept fromFile parameter, but it never creates a
  3267.     relative alias.
  3268.   - NewAliasMinimalFromPath and ResolveAliasFile aren't available.
  3269.   - ResolveAlias and UpdateAlias ignore the fromFile parameter.
  3270.   - MatchAlias may be called but the kARMMultVols, kARMSearchMore and
  3271.     kARMSearchRelFirst flags aren't available and ignored if passed.
  3272.     Also, a matchProc will never be called.
  3273.   - Won't mount network volumes.
  3274.  
  3275. And these are the FSSpec calls available with System 6 when QuickTime is
  3276. installed:
  3277.   - FSMakeFSSpec
  3278.   - FSpOpenDF
  3279.   - FSpOpenRF
  3280.   - FSpCreate
  3281.   - FSpDirCreate
  3282.   - FSpDelete
  3283.   - FSpGetFInfo
  3284.   - FSpSetFInfo
  3285.   - FSpSetFLock
  3286.   - FSpRstLock
  3287.   - FSpRename
  3288.   - FSpCatMove
  3289.   - FSpOpenResFile
  3290.   - FSpCreateResFile
  3291.   - FSpGetCatInfo
  3292.   
  3293. See for more information Technical Note M.QT.MovieTB.Q&As (QT 510) and
  3294. Develop 11 magazine on page 122.
  3295.  
  3296. RAM Doubler
  3297. -----------
  3298. It looks like RAM Doubler tricks the system in thinking there is virtual
  3299. memory but actually stores it somewhere else in memory instead to disk
  3300. which we are used to before RAM Doubler came around. It also looks like
  3301. this is done in corporation with Apple since a selector installed by
  3302. RAM Doubler is 'vmem' which is all lower-case and thus reserved by Apple.
  3303. In addition the response from this selector is always LongInt('RaM2') which
  3304. is the creator type of RAM Doubler. It seems this selector is used to
  3305. indicate which software is used to extend the capabilities of the Virtual
  3306. Memory Manager.
  3307. RAM Doubler also installs the selector 'vmFn' which seems to be a pointer
  3308. to a function to control RAMDoubler or to obtain information. It looks like
  3309. registers are used to pass parameters to and from that function. D0 perhaps
  3310. holds values 1 to 6 as input and perhaps A0 is used for the return value.
  3311.  
  3312. FUNCTION VMExtensionControl? (selector: Integer; VAR result: LongInt): OSErr;
  3313.      Registers on entry   D0: selector code
  3314.      Registers on exit    A0: result code
  3315.                           D0: error code
  3316.      Result codes
  3317.        noErr                       0 No error
  3318.        invalidSelector?          206 Invalid selector value?
  3319.        ???
  3320.  
  3321. Values used as selector:
  3322. CONST
  3323.      kVMControlType?        = 1;      {type VM extension: RaM2}
  3324.      kVMControlVersion?     = 2;      {version VM extension as BCD}
  3325.      kVMControl???          = 3;      {engine version as BCD?: $0313}
  3326.      kVMControlMemSize?     = 4;      {unknown: Get/SetMemorySize?}
  3327.      kVMControlMemSize?     = 5;      {unknown: Get/SetMemorySize?}
  3328.      kVMControl???          = 6;      {unknown}
  3329.      kVMContolMaxFunctions? = MAXINT; {returns number of valid selectors}
  3330.                                       {or any other value outside the}
  3331.                                       {current 1-6 range}
  3332.  
  3333. Remember: all this is heresay!!!
  3334.  
  3335. Because of all this you can imagine RAM Doubler replaces/installs the
  3336. following System Software selectors (and I think it does):
  3337. lram, pgsz, ram , vm  , vmbs. (Anonymous, Rene Ros)
  3338.  
  3339. General Info
  3340. ============
  3341. The following sections provide general information needed or useful in
  3342. relation to the Gestalt Manager.
  3343.  
  3344. System Managers
  3345. ---------------
  3346. Listed below is a table with the different software components of the
  3347. System Software with their related selectors. The selectors listed with
  3348. this table are included in the (known) 'Apple System Software' and
  3349. 'Apple Additional Software' sections.
  3350.  
  3351. ===========================================================================
  3352. System Software components and their selectors
  3353. ===========================================================================
  3354. Manager                        Determine presence/features by using:
  3355. ---------------------------------------------------------------------------
  3356. A/UX                           a/ux
  3357. ADB Mgr                        ???
  3358. Alias Mgr                      alis
  3359. Apple Remote Access            arb , strm
  3360. AppleScript                    ascr, ascv
  3361. AppleTalk                      atkv, atlk
  3362. At Ease                        kids
  3363. CD-ROM Software                aucd, hscd, iscd, kpcd, ufox
  3364. CloseView                      BSDa
  3365. Code Fragment Mgr              cfrg
  3366. Collection Mgr                 cltn
  3367. Color Picker                   cpkr
  3368. ColorSync Utilities            cmta, cmtc
  3369. Communications Toolbox         conn, crm , ctbm, ctbu, ctbv, term
  3370. Component Mgr                  cpnt
  3371. Compression Mgr                icmp
  3372. Control Mgr                    ???
  3373. Control Strip                  sdev, csvr
  3374. Cursor Utilities               qd >= gestalt32BitQD
  3375. Data Access Mgr                dbac
  3376. Desktop Mgr                    PBHGetVolParms fills GetVolParmsInfoBuffer.
  3377.                                Test for the bHasDesktopMgr bit (12) of the
  3378.                                vMAttrib field for all volumes.
  3379. Dialog Mgr                     ditl
  3380. Dictionary Mgr                 dict
  3381. Disk Initialization Mgr        fs  
  3382. Display Mgr                    dplv, dply
  3383. Docking Mgr                    ???
  3384. Drag Manager                   drag
  3385. Easy Access                    eajt, easy
  3386. Edition Mgr                    edtn
  3387. Event Mgr                      evnt
  3388. File Mgr                       ???
  3389. File System Mgr                fs  , fsm 
  3390. File Transfer Mgr              fxfr
  3391. Finder                         fndr
  3392. FindFolder function            fold
  3393. Flagship                       flag
  3394. Font Mgr                       font
  3395. Gestalt Mgr                    gval, tabl, vers, TrapAvailable(_Gestalt)
  3396. Graphics                       gfxa, grfx
  3397. Help Mgr                       help
  3398. Icon Utilities                 icon, TrapAvailable(_IconDispatch)
  3399. LAP Mgr                        atlk >= 53
  3400. List Mgr                       ???
  3401. MacTCP                         mtcp
  3402. Memory Mgr                     addr, cash, lram, ram , os  
  3403. Menu Mgr                       ???
  3404. Message Mgr                    mess
  3405. Mixed Mode Mgr                 mixd
  3406. MultiFinder                    TrapAvailable(_OSDispatch)
  3407. Notification Mgr               nmgr
  3408. Offscreen Graphics Worlds      sysv >= $0700
  3409. PC Exchange                    pcxg
  3410. Picture Utilities              sysv >= $0700
  3411. Popup CDEF                     pop!
  3412. Power Mgr                      powr
  3413. PowerTalk                      dfnd, dsig, malr, ocet, oceu, prpv,
  3414.                                sdvr, spsl
  3415. PPC Toolbox                    ppc 
  3416. Printing Mgr                   pmgr
  3417. Process Mgr                    os  
  3418. QuickDraw                      qd  , qdrw
  3419. QuickDraw GX                   qdgx
  3420. QuickTime                      qtim, qtrs
  3421. Realtime Mgr                   rtmr
  3422. Resource Mgr                   rsrc
  3423. Scrap Mgr                      scra
  3424. Script Mgr                     scr#, scri
  3425. SCSI Manager                   scsi
  3426. Slot Mgr                       nubs, slot, slt1, sltc
  3427. Sound Mgr                      snd , snhw
  3428. Sound Input Mgr                snd 
  3429. Speech Mgr                     ttsc
  3430. Speech Recognition             srta, srtb
  3431. Standard File Package          stdf
  3432. Standard NBP                   nlup
  3433. System Toolbox (hardware)      cput, fpu , hdwr, intd, kbd , mach,
  3434.                                mmu , proc, prty, rbv , rom , romv,
  3435.                                sccr, sccw, ser , sysa, via1, via2
  3436. System Toolbox (software)      lmem, micn, misc, os  , ostt, osyv,
  3437.                                sysv, tbtt, xttt
  3438. Telephone Mgr                  tele
  3439. TextEdit                       te  , teat
  3440. Text Services Mgr              tsmv, tmTE, tmTV
  3441. Text Utilities                 ???
  3442. Thread Mgr                     thds
  3443. Time Mgr                       tmgr
  3444. Translation Mgr                xlat
  3445. Virtual Memory Mgr             pgsz, vm  
  3446. Windows Mgr                    ???
  3447. Workstation Management Agent   wma.
  3448. WorldScript                    ws 1
  3449. XTND Technology                XTND
  3450. ---------------------------------------------------------------------------
  3451.  
  3452. Gestalt Problems
  3453. ----------------
  3454. This section lists all known problems related to the Gestalt selectors.
  3455. Each problem is also listed with each of the entries in the selector
  3456. chapters above. The table below provides an overview.
  3457.  
  3458. ===========================================================================
  3459. Overview Gestalt selector problems
  3460. ===========================================================================
  3461. Software                 Code  Problem                           Status
  3462. ---------------------------------------------------------------------------
  3463. Apple Photo Access ext   kpcd  always returns $FFFFFFF7          R unclear
  3464. AppleScript ext          ascv  different formats version         R problem?
  3465. AppleTalk                atkv  majorRev of version in hex          problem?
  3466. Color Picker ext         cpkr  incorrect return values?            problem?
  3467. Easy Access cp           easy  incorrect return values           C unknown
  3468. Icon Utilities code      icon  not installed                     C SYS 712?
  3469. Link Tool Mgr 2.0 ext    ltma  incorrect version value?          R problem?
  3470. PowerTalk ext/Control Strip 1.0 cp
  3471.                          sdvr  same selector for both?           C CS 1.1?>
  3472. Shared Library Mgr ext   aslm  incorrect version value?            problem?
  3473. Speech Recognition ext   srta, srtb
  3474.                                installed even if no SR possible  R unclear
  3475. System (enablers)        *ALL* Gestalt Mgr with System 7.1.2     C SYS 7.5>
  3476.                          alis  QT part. installs but no selector C ok
  3477.                          cash  never installed?                    unclear
  3478.                          conn  not installed with System 6         problem?
  3479.                          cput  incorrect return values 68K       C fixed
  3480.                          ctbv  PM returned 1.1 while ROM has 1.0 C SU 3.0 >
  3481.                          fs    QT part. installs but no selector C ok
  3482.                          intd  bit 1 (disk spon up) not set      R problem?
  3483.                          kbd   Adjustable Keyboard incorrect     C SU 2.0 >
  3484.                                not installed on PM7100 (7.1.2)     unclear
  3485.                          qdrw  HasColor set on B/W machines (7.0)C unknown
  3486.                          rsrc  PartialRsrcs not set with 7.0     C 7.1 >
  3487.                          sltc  No information on IIsi slot       C never?
  3488.                          sysv  KanjiTalk 6.0.7 incorrect return value
  3489.                                                                  C sysvINIT
  3490.                                System 6.0.8 returns $0607          never
  3491.                                System 7.1.2/PPC card returns 0710  unclear
  3492. System/Apple Event ext   evnt  constants overlap                 C fixed
  3493. ---------------------------------------------------------------------------
  3494. R       = unconfirmed but known to be reported to Apple
  3495. C       = confirmed
  3496. fixed   = problem is fixed, see selector entry for more information
  3497. ok      = meant to work this way...
  3498. unclear = unclear if it will ever be fixed
  3499. unknown = unknown when it will be fixed
  3500.  
  3501. History
  3502. -------
  3503. This section contains a short overview about the history of the Gestalt
  3504. Manager and its predecessors.
  3505.  
  3506. ENVIRONS
  3507.  
  3508. PROCEDURE Environs (VAR rom,machine: INTEGER);
  3509.  
  3510. With the introduction of the Macintosh the system routine 'Environs' was
  3511. introduced. It allowed to obtain two pieces of information: the ROM version
  3512. and a value to indicate the machinetype. This "ROM oriented" way soon
  3513. appeared to be insufficient when the range of Macintosh hardware and
  3514. software became more diverse.
  3515.  
  3516. SYSENVIRONS
  3517.  
  3518. FUNCTION SysEnvirons (versionRequested: INTEGER;
  3519.                       VAR theWorld: SysEnvRec): OSErr;
  3520.  
  3521. With System 4.1 a new system routine was introduced which allowed the
  3522. programmer to obtain more information about the current configuration.
  3523. Upon completion SysEnvirons filled the SysEnvRec with the information.
  3524. This was however an "all-or-nothing" situation, it was not possible to
  3525. obtain just one piece of information.
  3526. To allow for larger system environment records with more information one
  3527. needed to specify the version number of the system environment record. The
  3528. last version, introduced with System 6, was version 2 which had nine fields.
  3529.  
  3530. GESTALT
  3531.  
  3532. FUNCTION Gestalt (code: LONGINT; VAR feature: LONGINT): OSErr;
  3533.  
  3534. You may wonder how one can be so stupid to list the Gestalt routine wrong...
  3535. However, this is how the Gestalt routine was presented to developers in
  3536. the Preliminairy Developer Note regarding System 7 in 1989. It was
  3537. originally written in 1988.
  3538. There was no selector of type OSType as we known it today. Instead a list
  3539. of numerical constants was used, like:
  3540.  
  3541.      zVersion    = $1;   { Gestalt Version }
  3542.      zMachType   = $100; { machine type }
  3543.      zSystemVers = $101; { system file version }
  3544.  
  3545. and nine others.
  3546. But the principle used with todays Gestalt routine was there: request one
  3547. specific piece of information and you'll get it. Nothing more and nothing
  3548. less. Back then it wasn't the Gestalt Manager since there was only one
  3549. routine. Both the NewGestalt and the ReplaceGestalt did not exist.
  3550. In June 1992 (released in February 1993?) three new functions were added
  3551. to the Gestalt Manager: NewGestaltValue, ReplaceGestaltValue and
  3552. DeleteGestaltValue
  3553.  
  3554. Abbreviations
  3555. -------------
  3556. A/UX     - Apple UNIX
  3557. ADB      - Apple Desktop Bus
  3558. AMU      - Apple Memory Unit?
  3559. ARTA     - Apple Real Time Architecture
  3560. AS       - AppleShare
  3561. ASC      - Apple Sound Chip
  3562. ASCII    - American Standard Code for Information Interchange
  3563. ASIC     - Application specfic integrated circuit
  3564. AWAC     - Audio Waveform Amplifier and Converter
  3565. Caboose  - processor that manages the keyswitch, system power,
  3566.            the real-time clock, and parameter RAM
  3567. CDEF     - Control DEFinition (code resource)
  3568. CISC     - Complex Instruction Set Computer (compare with RISC)
  3569. CLUT/DAC - color look-up table and digital-to-analog converter IC
  3570. Combo    - chip, combines the functions of the SCC and the SCSI controller
  3571. CPU      - Central Processing Unit
  3572. DAFB     - Direct Access Frame Buffer
  3573. DAV      - Digital Audio Video (connector)
  3574. DDC      - Display Driver Chip
  3575. DFAC     - Digitally Filtered Audio Chip
  3576. DITL     - Dialog ITems List (resource)
  3577. DLL      - Dynamically Linkable Library
  3578. DMA      - Direct Memory Access
  3579. DN       - Developer Note
  3580. DOS      - Disk Operating System (to run a computer???)
  3581. DRAM     - Dynamic RAM
  3582. DSP      - Digital Signal Processor
  3583. EASC     - Enhanced Apple Sound Chip
  3584. FAT      - File Allocation Table?
  3585. FMC      - Fitch Memory Controller
  3586. FPU      - Floating Point Unit
  3587. GDEF     - Gestalt DEFinition (code resource)
  3588. GPi      - General Purpose Input
  3589. IM       - Inside Macintosh
  3590. IOP      - Input/Output Processor
  3591. IWM      - Integrated Woz Machine
  3592. JDB      - Junction Data Bus
  3593. JMC      - Jaws Memory Controller
  3594. MacOS    - Macintosh Operating System
  3595. MCU      - Memory Control Unit
  3596. MAE      - Macintosh Application Environment (Mac system on UNIX RISC)
  3597. MEO      - Macintosh Easy Open
  3598. MMU      - Memory Management Unit
  3599. NBP      - Name Binding Protocol
  3600. OCE      - Open Colloboration Environment
  3601. OMC      - Orwell Memory Controller
  3602. OS       - Operating System
  3603. OSA      - Open Scripting Architecture:
  3604.            OSA is the Open Scripting Architecture. It is the layer upon
  3605.            which all scripting languages sit and the method by which
  3606.            applications call scripts. (Jon Pugh)
  3607. OSL      - Object Support Library
  3608. OSS      - Operating System Support chip
  3609. PB       - PowerBook
  3610. PCI      - Peripheral Component Interconnect bus
  3611. PDS      - Processor-Direct Slot
  3612. PGC      - Parity Generator Chip
  3613. PMMU     - Paged Memory Management Unit
  3614. PSRAM    - Pseudo Static RAM
  3615. PPC      - Process-to-Process Communication, also:
  3616.            PowerPC
  3617. ProDOS   - Professional Disk Operating System? (OS for the Apple //)
  3618. PWM      - Pulse-Width Modulated?
  3619. QD       - QuickDraw
  3620. RAM      - Random Access Memory (see DRAM & SRAM, compare ROM)
  3621. RAMDAC   - Random Access Memory, Digital/Analog Converter
  3622. RBV      - RAM-Based Video
  3623. RISC     - Reduced Instruction Set Computer (compare with CISC)
  3624. ROM      - Read Only Memory
  3625. RSB      - Ram Based Sound
  3626. RTC chip - Real-Time Clock chip
  3627. RPU      - Random Parity Unit
  3628. SCC      - Serial Communications Controller
  3629. SCSI     - Small Computer System Interface
  3630. SDP      - Standard Directory Package
  3631. SIMM     - Single In-line Memory Module
  3632. SMP      - Standard Mailer Package
  3633. Sonic    - chip for built-in Ethernet
  3634. Sporty   - a custom IC that provides sound output amplification functions
  3635. SRAM     - Static RAM
  3636. SWIM     - Super-Wozniak Integrated Machine OR
  3637.            Sanders-Wozniak Integrated Machine
  3638. TE       - TextEdit (32Kb limited built-in text-engine)
  3639. TN       - Technical Note
  3640. TTS      - Text-To-Speech
  3641. VDAC     - Video Digital to Analog Converter
  3642. VIA      - Versatile Interface Adapter
  3643. VM       - Virtual Memory
  3644. VRAM     - Video RAM
  3645. YANCC    - Yet Another NuBus Controller Chip
  3646.  
  3647. FA       - File Access
  3648. RA       - Remote Access
  3649.  
  3650. Sources
  3651. -------
  3652. A    Apple Computer, Inc.
  3653. AD    Documentation & Magazines
  3654. AD01   MacTCP Programmer's Guide
  3655. AD02   AppleTalk Remote Access API External Reference Specification
  3656. AD03   Macintosh Easy Open programmer's docs
  3657. AD04   Thread Manager 1.1 and 2.0 documentation
  3658. AD05   Drag Manager Programmer's Guide
  3659. AD06   Sound Manager Tech Note on BookMark CD 16
  3660. AD07   Develop 17, p. 123
  3661. AD08   MAE Compatibility Hints
  3662. AD09   Color Matching documentation on ETO 14 and BookMark 18
  3663. AD10   OS Compatability doc on WWDC 1994 CD
  3664. AD11   IM PPC System Software
  3665. AD12   IM OS Utilities
  3666. AD13   Develop 19, p. 105
  3667. AD14   File System Manager Guide, Sep. 1994
  3668.  
  3669. AS    Software, source code & header files
  3670. AS01   QuickTime ImageCompression source files
  3671. AS02   CommToolbox 1.1 source files
  3672. AS03   MPW Interface files on Bookmark CD 14
  3673. AS04   GestaltEqu header file on ETO 12
  3674. AS05   GestaltEqu header file on ETO 13
  3675. AS06   GestaltEqu header file on BookMark CD 17
  3676. AS07   TSMTE header file on BookMark CD 17
  3677. AS08   AppleScript header file on ETO 14
  3678. AS09   Drag header file on ETO 14
  3679. AS10   XTNDInterface header file on ETO 14
  3680. AS11   ControlStrip header file on BookMark CD 19
  3681. AS12   AppleGuide header file on BookMark CD 18
  3682. AS13   Macintosh on RISC SDK (also on CodeWarrior CD)
  3683.  
  3684. AT    Technical Notes
  3685. AT01   TN M.OV.GestaltSysenvirons (OV 16), May 1987
  3686. AT02   TN M.NW.AppleTalk2 (NW 13), Feb.1992
  3687. AT03   TN M.DV.CD-ROMDriver (DV 22), May 1993
  3688. AT04   TN M.HW.SCSI.Q&As (HW 540), Oct. 1990
  3689. AT05   TN M.TX.TextServicesMgr.Q&As (TE 531), May 1993
  3690. AT06   TN OS 05 - System Update 3.0, July 1993/Rev. May 1994
  3691. AT07   TN M.DV.CuriousSCSI, May 1994
  3692.  
  3693. S    Symantec Corp.
  3694. S01    THINK Pascal 4.0 interface files
  3695. S02    THINK C GestaltGlue source files
  3696. S03    THINK Reference 1.0 and 2.0
  3697.  
  3698. M    Miscellaneous sources
  3699. M01    Gestalt DA 0.4 1990 (Carl C.Hewitt)
  3700. M02    Gestalt dcmd 1.0 (Eric Simenel, Apple Computer France)
  3701. M03    sysvINIT source files (Apple Computer Japan, Inc.)
  3702. M04    TMON Professional Reference Manual, p.192 (ICOM Simulations)
  3703. M05    AfterDarkGestalt.h file (Berkeley Systems, Inc.)
  3704. M06    SoftwareFPU Programmer Info (John Neil & Associates)
  3705.  
  3706. Related Software
  3707. ----------------
  3708. Listed below is software which may be of interest to developers because
  3709. they are a tool providing information from the Gestalt Manager, include
  3710. Gestalt-related source code or provide additional capabilities to the
  3711. Gestalt Manager. Included is also were you can find or get a copy.
  3712. All software available on sumex-aim.stanford.edu is also available on the
  3713. INFO-MAC CD-ROM by Pacific HiTech, Inc. The INTERNET FTP-sites mentioned
  3714. may have one or more mirror sites as well. Locations on CompuServe are not
  3715. included.
  3716. Some software listed below can also be found at the mail-archive server,
  3717. see the section 'Availability' in the 'About this list' chapter for more
  3718. information.
  3719.  
  3720. 5thColumn, GestaltProbe (Kamran Golriz, Apple Computer Inc.)
  3721.      Extension with MPW Tools to query other mac on a network, one of
  3722.      the tools is GestaltProbe.
  3723.  
  3724.      CD-ROM: Bookmark CD (Apple Developer Group)
  3725.                :Tools & Applications:Network & Communications:5th Column:
  3726. AEgestalt (Kent Sandvik, Apple Computer Inc.)
  3727.      Uses Apple Events to get Gestalt response from remote machine,
  3728.      includes C-source. (Requires color?? Doesn't run on MacPlus)
  3729.  
  3730.      FTP:    ftp.apple.com [130.43.2.3]
  3731.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  3732.                                    aegestalt-1-0.hqx
  3733.      CD-ROM: Bookmark CD (Apple Developer Group)
  3734.                :Documentation & Samples:Sample Code:Snippets:
  3735.                  Platforms & Tools:AEGestalt 1.0:
  3736. AfterDark Gestalt header file (Berkeley Systems, Inc.)
  3737.      Header file for using the gestalt selectors used by many screensavers.
  3738.  
  3739.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3740.                archive get src/AfterDarkGestalt.h
  3741.              brklysystm@aol.com (Berkeley Systems Mac Tech Support)
  3742.                ask them nicely to email the AfterDarkGestalt.h file.
  3743. CheckGestaltFor (Neil Shulman)
  3744.      Hypercard external to access the Gestalt Manager.
  3745.  
  3746.      FTP:    sumex-aim.stanford.edu [36.44.0.6]
  3747.                ftp://sumex-aim.stanford.edu/info-mac/card/
  3748.                                             check-gestalt-for-xcmd.hqx
  3749.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3750.                archive get software/check-gestalt-for-xcmd.hqx
  3751. DisplayGestalt (Craig Marciniak)
  3752.      Small application displays configuration using Gestalt Mgr, includes
  3753.      C-source.
  3754.  
  3755.      FTP:    mac.archive.umich.edu [141.211.120.11]
  3756.              ftp://mac.archive.umich.edu/development/libraries/
  3757.                                          displaygestalt.cpt.hqx
  3758.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3759.                archive get software/displaygestalt.cpt.hqx
  3760. Feature Teller 1.0 (Jennifer Minge, Apple Computer Inc.)
  3761.      Sample application quering Gestalt Mgr (or SysEnvirons if not
  3762.      available). Includes THINK Pascal source.
  3763.  
  3764.      CD-ROM: Bookmark CD (Apple Developer Group)
  3765.                :Tools & Applications:OS/Toolbox:Feature Teller 1.0:
  3766. Gestalt! 3.0 (Roland Mansson)
  3767.      Displays responses from installed selectors.
  3768.  
  3769.      FTP:    ftp.lu.se [130.235.132.90]
  3770.                ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
  3771.              sumex-aim.stanford.edu [36.44.0.6]
  3772.                ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
  3773.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3774.                archive get software/gestalt-30-app.cpt.hqx
  3775. GestaltDA 0.4 (Carl C. Hewitt, Apple Computer Inc.)
  3776.      Displays responses from installed selectors.
  3777.  
  3778.      CD-ROM: Bookmark CD (Apple Developer Group)
  3779.                :Tools & Applications:OS/Toolbox:GestaltDA 0.4
  3780. Gestalt DCMD (Apple Computer Inc.)
  3781.      This dcmd (debugger command for MacsBug) allows you to "use" Gestalt
  3782.      when you're in MacsBug.
  3783.  
  3784.      FTP:    ftp.apple.com [130.43.2.3]
  3785.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  3786.                                    gestalt-dcmd.hqx
  3787.      CD-ROM: Bookmark CD (Apple Developer Group)
  3788.                :Documentation & Samples:Sample Code:Snippets:
  3789.                  Platforms & Tools:Gestalt dcmd:
  3790. Gestalt Environment 7
  3791.      Application to list a number of installed selectors.
  3792.  
  3793.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3794.                archive get software/ge7.hqx
  3795. GestaltExt (Andre Cavegn)
  3796.      External for 4TH Dimension Relational Database application from
  3797.      ACI/ACI US.
  3798.  
  3799.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3800.                ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
  3801.                                             gestalt-ext.hqx
  3802.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3803.                  archive get software/gestalt-ext.hqx
  3804. GestaltGlue (???)
  3805.      Glue code and interface in C and assembly.
  3806.  
  3807.      CD-ROM: Bookmark CD (Apple Developer Group)
  3808.                :Documentation & Samples:Sample Code:System 7.0 samples:
  3809.                  DTS.Utilities:Gestalt*
  3810. Gestalt Pro 1.1.2 (Rene G.A. Ros)
  3811.      External for 4TH Dimension Relational Database application from
  3812.      ACI/ACI US.
  3813.  
  3814.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3815.                ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
  3816.                                             gestalt-pro-112.hqx
  3817.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3818.                archive get software/gestalt-pro-112-.sit.hqx
  3819. GestaltTalk (Brigham Stevens, Apple Computer DTS)
  3820.      Code part of Notification Hacks to show how you can communicate
  3821.      between an application and an INIT using the Gestalt Mgr. Includes
  3822.      C-source files.
  3823.  
  3824.      CD-ROM: Bookmark CD (Apple Developer Group)
  3825.                :Documentation & Samples:Sample Code:Snippets:
  3826.                  Toolbox:Notification Hacks:GestaltTalk:
  3827. GestaltValue (anonymous, Apple Computer Inc.)
  3828.      Library and interface for use of the GestaltValue functions.
  3829.  
  3830.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3831.                ftp://sumex-aim.stanford.edu/info-mac/dev/
  3832.                                             gestalt-value-lib.hqx
  3833.      EMAIL:  Dave Radcliffe, Mac DTS (radcliff@apple.com)
  3834.                gestalt-selectors-list-request@bio.vu.nl
  3835.                  archive get software/gestaltvalue-lib.hqx
  3836.      CD-ROM: Bookmark CD (Apple Developer Group)
  3837.                :Tools & Applications:OS/Toolbox:GestaltValue:
  3838. GestaltWatch ext 1.0a1 (Scott Bronson)
  3839.      Tracks all calls to NewGestalt and ReplaceGestalt traps.
  3840.      Not yet available.
  3841. Gestalt XFCN 3.2.1 (Jeff Iverson)
  3842.      Hypercard XFCN to query the Gestalt Manager.
  3843.  
  3844.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3845.                ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
  3846.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3847.                archive get software/gestalt-321-xfcn.hqx
  3848. Gestaltzeigen appl 1.0 (B. Kevin Hardman)
  3849.      Displays responses from installed selectors and any bit
  3850.      interpretation. Not yet available.
  3851. Get Gestalt (AppleScript addition) 1.2 by Mark Alldritt
  3852.      Provides access to the Gestalt Manager for AppleScript scripts.
  3853.  
  3854.      FTP:    gaea.kgs.ukans.edu [129.237.140.40]
  3855.                ftp://gaea.kgs.ukans.edu/applescript/osaxen/
  3856.                                         ScriptTools1.3.sit.hqx ?
  3857.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3858.                archive get software/scripttools-13.sit.hqx
  3859. Go Gestalt appl 1.0b (Paul Reznick)
  3860.      Displays information obtained thru the Gestalt Mgr. 
  3861.  
  3862.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3863.                archive get software/go-gestalt-10b.sit.hqx
  3864. INITGestalt (Jeremy Roussak & Rene Ros)
  3865.      Latest version of the INITGestalt proposal. Tries to define a
  3866.      standardized record to use with the Gestalt Mgr.
  3867.  
  3868.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3869.                archive get INITGestalt.txt
  3870. Informant XFCN 1.0 (Jeff Iverson)
  3871.      Hypercard XFCN to query the Gestalt Manager.
  3872.  
  3873.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3874.                ftp://sumex-aim.stanford.edu/info-mac/card/
  3875.                                             information-10-xfcn-demo.hqx
  3876.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3877.                archive get software/information-10-xfcn-demo.hqx
  3878. Mac Identifier 1.0 (Flux Software, written by Maurice Volaski)
  3879.      Fixes the problem of System 7.5 which doesn't display the real
  3880.      machine type name anymore.
  3881.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3882.                ftp://sumex-aim.stanford.edu/info-mac/gui/
  3883.                                             mac-identifier-10.hqx
  3884.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3885.                archive get software/mac-identifier-10.hqx
  3886. SAVR Gestalt (Thomas Reed)
  3887.      Source code (C) demonstrating how to install the Screen saver
  3888.      Gestalt selector 'SAVR'.
  3889.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3890.                archive get src/gestalt-savr.txt
  3891. Tattle-Tech appl (Decision Makers Software, Inc.)
  3892.      Uses Gestalt manager extensively to display all know information.
  3893.  
  3894.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3895.                ftp://sumex-aim.stanford.edu/info-mac/cfg/
  3896.                                             tattle-tech*.hqx
  3897.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3898.                archive get software/tattle-tech*.hqx
  3899. TechTool appl 1.0.4 (Micromat Computer Systems)
  3900.      Application to reset PRAM, rebuild DTDB and show Gestalt info.
  3901.  
  3902.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3903.                archive get software/tech-tool-104.hqx
  3904. Technical Notes: (Apple Computer Inc.)
  3905.      M.OV.GestaltSysenvirons (Gestalt & SysEnvirons)
  3906.      M.NW.AppleTalk2         (AppleTalk The Rest Of the Story)
  3907.      M.OS.GestaltMgr.Q&As    (Gestalt Manager Questions and Answers)
  3908.  
  3909.      FTP:    ftp.apple.com [130.43.2.3]
  3910.                ftp://ftp.apple.com/dts/mac/tn/overview.ov/
  3911.                                    ov-16-gestalt-and-sysenvir.hqx
  3912.                ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
  3913.                ftp://ftp.apple.com/dts/mac/tn/operating.system.os/
  3914.                                    os-505-gestalt-mgr-qas.hqx 
  3915.      CD-ROM: Bookmark CD (Apple Developer Group)
  3916.                :Documentation & Samples:Mac Tech Notes:
  3917.                  Overview (OV):OV 16 - Gestalt & SysEnvirons
  3918.                  Networking (NW):NW 13 - AppleTalk The Rest Of
  3919.                  Operating System (OS):OS 505 - Gestalt Mgr Q&As
  3920. Test Gestalt (Apple Computer Inc.)
  3921.      Examples to test for QuickDraw version and Virtual Memory status,
  3922.      includes C-source.
  3923.  
  3924.      FTP:    ftp.apple.com [130.43.2.3]
  3925.                ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/
  3926.                                    testgestalt.hqx
  3927.      CD-ROM: Bookmark CD (Apple Developer Group)
  3928.                :Technical Documentation:Sample Code:Snippets:
  3929.                  Toolbox:TestGestalt:
  3930. Userfunction Gestalt code (Rich Kubota, Apple Computer Inc.)
  3931.      Source code in C for Apple Installer Script writers.
  3932.  
  3933.      FTP:    ftp.apple.com [130.43.2.3]
  3934.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  3935.                                    userfunction-gestalt.hqx
  3936.      CD-ROM: Bookmark CD (Apple Developer Group)
  3937.                :Technical Documentation:Sample Code:Snippets:
  3938.                  Platforms & Tools:UserFunction Gestalt:
  3939. WhoAmI? (Jonathan Jacobs)
  3940.      Installer to add full Machine Name STR# resource to System 7.5.
  3941.  
  3942.      FTP:    sumex-aim.stanford.edu [36.44.0.6]
  3943.                ftp://sumex-aim.stanford.edu/info-mac/cfg/who-am-i-091.hqx
  3944.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3945.                archive get software/who-am-i-091.hqx
  3946.  
  3947. URL
  3948. ---
  3949. Below are all locations of files listed in the Universal Resource Locators
  3950. (URL) format, except those which can not be described by an URL. They are
  3951. listed here again, but now without linebreaks. This is the only part of the
  3952. GSL exceeding the 80 characters per line limit.
  3953.  
  3954. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/aegestalt-1-0.hqx
  3955. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/gestalt-dcmd.hqx
  3956. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/userfunction-gestalt.hqx
  3957. ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/testgestalt.hqx
  3958. ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
  3959. ftp://ftp.apple.com/dts/mac/tn/operating.system.os/os-505-gestalt-mgr-qas.hqx 
  3960. ftp://ftp.apple.com/dts/mac/tn/overview.ov/ov-16-gestalt-and-sysenvir.hqx
  3961. ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
  3962. ftp://gaea.kgs.ukans.edu/applescript/osaxen/ScriptTools1.3.sit.hqx ?
  3963. ftp://mac.archive.umich.edu/development/libraries/displaygestalt.cpt.hqx
  3964. ftp://merit.edu/pub/ppp/mac/
  3965. ftp://sumex-aim.stanford.edu/info-mac/card/check-gestalt-for-xcmd.hqx
  3966. ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
  3967. ftp://sumex-aim.stanford.edu/info-mac/card/information-10-xfcn-demo.hqx
  3968. ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
  3969. ftp://sumex-aim.stanford.edu/info-mac/cfg/tattle-tech*.hqx
  3970. ftp://sumex-aim.stanford.edu/info-mac/cfg/who-am-i-091.hqx
  3971. ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-ext.hqx
  3972. ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-pro-112.hqx
  3973. ftp://sumex-aim.stanford.edu/info-mac/dev/gestalt-value-lib.hqx
  3974. ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
  3975. ftp://sumex-aim.stanford.edu/info-mac/gui/mac-identifier-10.hqx
  3976. http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
  3977.  
  3978. Definitions and Format
  3979. ======================
  3980. This chapter explains where the word 'Gestalt' comes from, a few things
  3981. are defined and it explains how each selector code entry looks like.
  3982.  
  3983. Use in Language
  3984. ---------------
  3985. Webster's Dictionary (?):
  3986.      ge.stalt \g<e>-'s(h)t<a:>lt, -'s(h)t<o.>lt\ n, pl ge.stalt.en
  3987.      \-<\e>n\ or gestalts (1922)
  3988.        [G, lit., shape, form]
  3989.        :a structure, configuration, or pattern of physical, biological,
  3990.        or psychological phenomena so integrated as to constitute a
  3991.        functional unit with properties not derivable by summation of its
  3992.        parts.
  3993. German-Dutch dictionary:
  3994.      Gestalt w [-en]
  3995.        stature, figure, form; Ritter von der Traurigen -, knight of the
  3996.        sorrowful figure.
  3997.  
  3998. Definitions
  3999. -----------
  4000. Apple Software
  4001.      This category includes all selectors installed by software published
  4002.      by Apple Computer, Inc.
  4003.      Inside Macintosh says this about them:
  4004.        "Apple reserves for its own use all four-character sequences
  4005.        consisting solely of lowercase letters and non alphabetic ASCII
  4006.        characters".
  4007.      It includes all selectors of the next two categories:
  4008.       
  4009. Apple System Software
  4010.      This category includes all selectors installed by System Software from
  4011.      Apple Computer, Inc.
  4012.  
  4013. Apple Additional Software
  4014.      These are selectors installed by additional, non-system, software from
  4015.      Apple Computer, Inc.
  4016.  
  4017. Third Parties Software
  4018.      These are selectors installed by software from parties other than
  4019.      Apple Computer, Inc.
  4020.      Inside Macintosh says about these:
  4021.        "If you have registered a creator string with Apple, you are
  4022.        strongly encouraged to use that sequence as your selector code".
  4023.      This type of selectors is included in this list with the motto "If you
  4024.      don't know they are there, you can't do anything with them".
  4025.      Especially the Third Party selectors may change with every new release
  4026.      and are therefore only listed in the 'known selectors' part when the
  4027.      author has described the structure in the documentation or by email to
  4028.      me. These selectors don't have a high priority but when possible I
  4029.      want to know at least which software installs it to exclude it as a
  4030.      possible "Apple selector".
  4031.      Some people at Apple also differentiate between commercial developers
  4032.      and others, as being "third" and "fourth" parties respectively. But
  4033.      with this list this is not the case.
  4034.  
  4035. Format Selector Entry
  4036. ---------------------
  4037. Format used to display information about each selector:
  4038.  
  4039. selector code (Software name & type [since version], by company/author)
  4040.      constant name
  4041.      description
  4042.  
  4043.      CONST declaration; {remark} *ref.number to source
  4044.  
  4045.      NOTE and/or WARNING:
  4046.  
  4047. Where the type is one of:
  4048. app  application (APPL)
  4049. cp   control panel (cdev)
  4050. ext  extension (INIT/appe/RDEV etc.)
  4051.  
  4052. Example:
  4053.  
  4054. COLA (Sugarwater ext [1.0] by John Sculley)
  4055.      gestaltSugarwaterVersion
  4056.      Returns version of Sugarwater as NumVersion.
  4057.  
  4058.      gestaltSugarwaterVersion = 'COLA'; *AB01
  4059.  
  4060.      WARNING: This example is fictitious.
  4061.  
  4062.      NOTE:
  4063.      Sugarwater? See the book 'West of Eden, The End of Innocence at
  4064.      Apple' by Frank Rose.
  4065.  
  4066. Most selectors are listed as four characters, if there are only two or
  4067. three characters displayed the remainder are spaces (or it's a typo!).
  4068. Diacritical characters are shown in the most logical normal character and
  4069. at the end of the entry a note is included about which key-combination to
  4070. press with a normal International system and US keyboard layout to get the
  4071. required diacritical character and also listed is its ASCII code.
  4072. When 'INF' is at the end of the first line it means it is an informational
  4073. selector, all others are environmental selectors.
  4074. The source reference number may also be used in other places than indicated
  4075. above. It then applies to other parts of the entry or to the whole entry.
  4076. A single question mark indicates an uncertainty regarding the information
  4077. in front of the question mark. Three question marks indicate complete
  4078. absence of the information.
  4079. Some symbolic names may not originate from official publications.
  4080.  
  4081. Symbolic Names Suffixes
  4082. -----------------------
  4083. The last characters of the symbolic names form a suffix which indicates
  4084. the type of the returned value. Below is a table which lists the different
  4085. types of suffix and their meaning.
  4086.  
  4087. ===========================================================================
  4088. Symbolic Names Suffixes
  4089. ===========================================================================
  4090. Suffix                   Meaning
  4091. ---------------------------------------------------------------------------
  4092. Addr                     Value is an address, i.e. to the base address of
  4093.                          a memory-mapped device or to a function in
  4094.                          memory.
  4095. Attr                     Value is a range of 32 bits (0 is the least
  4096.                          significant bit), must compare with list of
  4097.                          constants and use BitTst or similair. Sometimes
  4098.                          it is a bitmask, then use BitAnd.
  4099. Count                    Value is a number indicating how many of the
  4100.                          indicated type exist.
  4101. Icon                     Value is the resource ID of an icon.
  4102. Size                     Value is a size, usually in bytes.
  4103. Table                    Value is the base address of a table.
  4104. Type                     Value is an index to map to a version or name.
  4105. Version                  Value is a version number. See the section
  4106.                          'Format Version Numbers' below, for a list of
  4107.                          different formats of version numbers.
  4108. <none>                   If there is no suffix like the ones above, the
  4109.                          presence of the selector only implies the
  4110.                          software which installed the selector is present.
  4111.                          The returned value is then private to the
  4112.                          installee.
  4113. ---------------------------------------------------------------------------
  4114.  
  4115. Format Version Numbers
  4116. ----------------------
  4117. BCD (Binary Coded Decimal)
  4118.      $0x0402 means 4.0.2.
  4119. INTEGER
  4120.      The decimal representation of the returned value in the low-byte is
  4121.      the version.
  4122. Double BCD (my own fantasy name..., RR)
  4123.      $00010108 means 1.1.8.
  4124. NumVersion
  4125.      The format of the LongInt response can be coerced into type NumVersion,
  4126.      which is the same format as used for the 'vers' resource type.
  4127.  
  4128.      type
  4129.       NumVersion = packed record
  4130.        case INTEGER of
  4131.         0: (majorRev: SignedByte;  {1st part of version number in BCD}
  4132.             minorRev: 0..9;        {2nd part is 1 nibble in BCD}
  4133.             bugFixRev: 0..9;       {3rd part is 1 nibble in BCD}
  4134.             stage: SignedByte;     {stage code: dev, alpha, beta, final}
  4135.             nonRelRev: SignedByte);{revision level of non-released version}
  4136.         1: (version: LONGINT);     {to use all 4 fields at one time}
  4137.        end;
  4138.  
  4139.      stage is one of: $20 = development
  4140.                       $40 = alpha
  4141.                       $60 = beta
  4142.                       $80 = final
  4143.  
  4144. About this list
  4145. ===============
  4146. The Gestalt Manager is a collection of system routines which allows
  4147. applications to test for the availability of software and hardware. Because
  4148. of the increasing number of different software and hardware configurations,
  4149. this is getting an important issue. It probably already is and known by the
  4150. term 'compatability'.
  4151. The Gestalt function allows applications to obtain information about the
  4152. current configuration. Selectors are used to refer to certain information.
  4153. A selector is of type OSType (a four byte value) and usually contain four
  4154. ASCII characters. For example: the selector 'sysv' causes the version of
  4155. the current system is returned. Other functions, NewGestalt and
  4156. ReplaceGestalt, allow programmers to install their own Gestalt selectors.
  4157. Programmers need to know these selectors beforehand to be able to request
  4158. and interpret the value returned by the Gestalt function.
  4159. See for more detailed information on how to use the Gestalt Manager
  4160. routines Inside Macintosh part VI (old series). The new Inside
  4161. Macintosh: Operating System Utilities replaces IM VI.
  4162. When you already have one or more of the new IM issues you may be a bit
  4163. disappointed. I was, because of the very minimal information provided
  4164. regarding the availability of the system routines. Of most routines you
  4165. will find no information on how to test their availability.
  4166.  
  4167. This Gestalt Selectors List intends to list all known selectors, but in
  4168. reality this means it lists all selectors known to the editor.
  4169. I would like to see this list to be a combined effort by different persons
  4170. who have together access to a wide area of information.
  4171. This list may contain (educated?) guesses and perhaps even false
  4172. information, so no guarantee is made about the contents.
  4173. You may use this information freely (see Legal Stuff section below), but
  4174. when you find information not included with this list; please tell me. If
  4175. you have additions, corrections, comments, suggestions, news about
  4176. available software, etc., mail it me. Please, also mention the source you
  4177. used, if any.
  4178. You can send contributions, remarks, etc. to this email address:
  4179.     gestalt-selectors-list@bio.vu.nl
  4180. If you want to remain anonymous, please mention this and it will be taken
  4181. care of.
  4182. I don't have all the documentation or knowledge and I don't want to, and
  4183. I'am certainly not Mr.Gestalt.
  4184.  
  4185. Availability
  4186. ------------
  4187. If you downloaded this list from CompuServe, a BBS, or any other service,
  4188. you will notice some strange things like 'FTP-sites' which have to do
  4189. with the fact that this list originates from INTERNET.
  4190. You can access the mail archive server also from CompuServe, AOL and
  4191. AppleLink. Contact your network provider for information on how to send
  4192. email to an INTERNET site.
  4193.  
  4194. This list is available in the following ways:
  4195.  
  4196. **INTERNET**
  4197.  
  4198. USENET newsgroup comp.sys.mac.programmer (c.s.m.p.)
  4199. This list has become too large to post to c.s.m.p., so starting from
  4200. version 2.2 this list is no longer posted there. Instead an announcement
  4201. will be posted informing were you can find the latest version.
  4202.  
  4203. FTP-site
  4204. sumex-aim.stanford.edu [36.44.0.6]
  4205. Every minor and major version is submitted to the info-mac archives:
  4206.  
  4207. ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
  4208.  
  4209. It is also available on its mirror sites.
  4210. Contact: Info-Mac Moderator (info-mac-request@sumex-aim.stanford.edu)
  4211.  
  4212. FINGER
  4213. Using Finger to obtain the latest version is no longer possible.
  4214.  
  4215. WWW
  4216. The GSL is also available for World Wide Web users together with other
  4217. Macintosh FAQs at:
  4218.  
  4219. http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
  4220.  
  4221. Contact: Robert Lentz (lentz@rossi.astro.nwu.edu)
  4222.  
  4223. **COMPUSERVE**
  4224.  
  4225. Starting with version 2.0 this list will be uploaded to the
  4226. Macintosh Developers Forum (MACDEV). Only new minor and major versions
  4227. will be uploaded once. It will then appear in the Tools/Debuggers (13)
  4228. section.
  4229.  
  4230. **GENERAL**
  4231.  
  4232. CD-ROM or BBS
  4233. Because of permissions I granted you may get this list from a CD-ROM or via
  4234. a BBS from Internet, CompuServe or a CD-ROM. If you do, and the release was
  4235. more than two months ago, there is probably already a newer version.
  4236.  
  4237. MAILING LIST
  4238. Every person on the mailing list gets automatically an update by email
  4239. whenever there are some changes. If you want to subscribe or unsubscribe to
  4240. this mailing list you need to send an email to this address:
  4241.      gestalt-selectors-list-request@bio.vu.nl
  4242. Then put in the subject line either 'subscribe' or 'unsubscribe'.
  4243.  
  4244. The mailing list is moderated, which means everybody can email to:
  4245.     gestalt-selectors-list@bio.vu.nl
  4246. But only after approval of the moderator the other subscribers will receive
  4247. your posting. This guarantees that no confidential contribution is
  4248. distributed before the moderator sees it.
  4249.  
  4250. This service is only possible to those who have an account on Internet or
  4251. any other network reachable from Internet (CompuServe, AOL, AppleLink,
  4252. Fidonet). I can not provide mailing of printed versions or on disk by
  4253. normal surface mail.
  4254.  
  4255. MAIL ARCHIVE SERVER
  4256. Your can retrieve the latest versions of this list and other software
  4257. by sending an email to this address:
  4258.      gestalt-selectors-list-request@bio.vu.nl
  4259. In the subject line you need to enter 'archive' and then put one command
  4260. behind it or more in the body of your email. These commands can be:
  4261.      help             to get some help on using the archive server
  4262.      ls <dir>         to list the contents of the specified directory
  4263.      get <dir>/<file> to have the specified file sent to you by email.
  4264. To obtain the abstracts of all files available you can use this command:
  4265.      get ABSTRACTS
  4266.  
  4267. Your actions may be logged.
  4268.  
  4269. PRINTED
  4270. If you want this list printed on paper you may want to try a feature
  4271. included with the LaserWriter 8 software. With it you can print four
  4272. pages on a single sheet of paper. When you set the page breaks correct,
  4273. this produces a very neat, little booklet.
  4274.  
  4275. Acknowledgements
  4276. ----------------
  4277. I want to thank the following persons for their contribution to this list:
  4278.  
  4279. ===========================================================================
  4280. Name                                       Internet Email Address
  4281. ---------------------------------------------------------------------------
  4282. Anonymous contributor(s)                   anonymous@secret.cia
  4283. Lonnie R. Abelbeck                         abelbeck@dev.abelbeck.com
  4284. Daniel Azuma                               dazuma@cco.caltech.edu
  4285. J.D. Sterling Babcock                      jdsb@ee.duke.edu
  4286. John Baxter                                jwbaxter@pt.olympus.net
  4287. Martin Bestmann                     kruemel@theorie3.physik.uni-erlangen.de
  4288. Mason L. Bliss                             mason@cis.umassd.edu
  4289. Scott Bronson                              urge@mcl.mcl.ucsb.edu
  4290. Jim Browne                                 jbrowne@ncsa.uiuc.edu
  4291. Richard Buckle                             richardb@cocytus.demon.co.uk
  4292. Ivan M Cavero Belaunde                     ivanski@world.std.com
  4293. Mike Cohen                                 isis@netcom.com
  4294. Marc Cooperman                             coopem@panix.com
  4295. Mark Dawson                                marc@apple.com
  4296. Lawrence D'Oliveiro                        ldo@waikato.ac.nz
  4297. Dave Falkenburg, Apple Computer Inc.       falken@apple.com
  4298. Rick Gansler                               gansler@boardwalk.tiac.net
  4299. M. David Greenspon                         gremicf@yalevm.ycc.yale.edu
  4300. C.K. Haun                                  haun@apple.com
  4301. Michael Hecht                              Michael_Hecht@mac.sas.com
  4302. Robert Hess                                robert_hess@macweek.ziff.com
  4303. Bill Hofmann                               wdh@netcom.com
  4304. Mark B. Johnson                            mjohnson@apple.com
  4305. David B. Lamkins                           dblamkins@aol.com
  4306. Robert Lentz                               lentz@rossi.astro.nwu.edu
  4307. David Lewis                                lewis@netcom.com
  4308. Spencer Low                                spencerl@crl.com
  4309. John Mancino, Decision Maker's Software    mancino@decismkr.com
  4310. Roland Mansson                             roland.mansson@ldc.lu.se
  4311. Matsubayashi Kohji                         matubays@ics.es.osaka-u.ac.jp
  4312. Duane Murphy, Novell Inc.                  damurphy@wc.novell.com
  4313. Mark Nagata                                nagata@kurims.kyoto-u.ac.jp
  4314. Fabrizio Oddone                            simula3@di.unito.it
  4315. Carl R. Osterwald                          cro@br213mail.nrel.gov
  4316. Marco Piovanelli                           piovanel@ghost.dsi.unimi.it
  4317. Kees Pols                                  kpols@bio.vu.nl
  4318. Francois Pottier                           pottier@clipper.ens.fr
  4319. Jon Pugh                                   jonpugh@netcom.com
  4320. Quinn                                      quinn@cs.uwa.edu.au
  4321. Dave Radcliffe, Apple Computer Inc.        radcliff@apple.com
  4322. Thomas Reed                                reed@telesphere.wustl.edu
  4323. Pete Resnick                               resnick@cogsci.uiuc.edu
  4324. Paul Reznick                               PRzeznik@aol.com
  4325. Alex Rosenberg, Apple Computer Inc.        alexr@apple.com
  4326. Leonard Rosenthol                          leonardr@netcom.com
  4327. Jeremy Roussak                             jeremyr@dcs.qmw.ac.uk
  4328. Ray Sanders                                72511.232@CompuServe.COM
  4329. Eric Schlegel, Microsoft Corporation       ericsc@microsoft.com
  4330. Marc Schrier                               schrier@garnet.berkeley.edu
  4331. Mark Simmons                               72511.256@CompuServe.COM
  4332. Brian Stern                                Jaeger@fquest.com
  4333. Zalman Stern                               zalman@adobe.com
  4334. Tim Swihart                                tim_swihart@quickmail.apple.com
  4335. Ilan Szekely                               ILANS@ds.huji.ac.il
  4336. Victor Tan                                 victort@extro.ucc.su.oz.au
  4337. Rodrigo Torres, Berkeley Systems           brklysystm@aol.com
  4338. Hans Verbrugge                             hverbrug@knoware.nl
  4339. John Watte                                 d88-jwa@nada.kth.se
  4340. Jonathan Wilson                            toast@diss.hyphen.com
  4341. Chris Wysocki                              wysocki@netcom.com
  4342. ---------------------------------------------------------------------------
  4343.  
  4344. And my colleagues at the Computer Department of the Biology Faculty of the
  4345. Vrije University in Amsterdam, The Netherlands for their help and support.
  4346. Also special thanks to Marco Piovanelli for his support and comments about
  4347. preliminary versions and updates.
  4348.  
  4349. The persons mentioned above provided information used in this list. They
  4350. did this on personal title, NOT on behalf of their employer, unless
  4351. explicitly stated otherwise.
  4352. I assume information you mail to me about Gestalt selectors may be used in
  4353. this list. Information made available to the general public (e.g. a posting
  4354. to a USENET newsgroup) is also included and the persons name added to this
  4355. section (and to the mailing list).
  4356. I will mail you back to thank you and include the parts from the list which
  4357. were changed, according to the information you provided, to let you check
  4358. them.
  4359.  
  4360. Legal Stuff
  4361. -----------
  4362. (c) 1992-1994, Rene G.A. Ros
  4363.  
  4364. See other paragraphs (below) for remarks regarding liability, trademarks
  4365. and distribution.
  4366.  
  4367. NOTICE OF LIABILITY
  4368. The information in this list is distributed on an "AS IS" basis, without
  4369. warranty. While every precaution has been taken in the preparation of this
  4370. list, neither the editor nor any contributor shall have any liability to
  4371. any person or entity with respect to any liability, loss, or damage caused
  4372. or alleged to be caused directly or indirectly by the information contained
  4373. in this list or by the computer software and hardware products described
  4374. herein.
  4375.  
  4376. TRADEMARKS
  4377. Throughout this list trademarked names are used. Rather than put a
  4378. trademark symbol in every occurrence of a trademarked name, I state I am
  4379. using the names only in an editorial fashion and to the benefit of the
  4380. trademark owner with no intention of infringement of the trademark.
  4381.  
  4382. DISTRIBUTION
  4383. The information in this list may be used freely. When you use the
  4384. information in this list for COMMERCIAL purposes, you may consider sending
  4385. the editor a donation. You are not allowed to distribute this list outside
  4386. any computer network (especially printed, on disk or CD-ROM) unless you
  4387. have contacted the editor and received permission to do so. This is also to
  4388. ensure you have the latest version. The updates may not be distributed,
  4389. these are ONLY for the persons on the mailing list.
  4390. You are not allowed to use excerpts of this list with your documentation or,
  4391. in any other way, without prior permission of the editor. You will receive
  4392. permission to include excerpts when you are subscribed to the mailing list.
  4393.  
  4394. Permission for distribution of the full list is granted to:
  4395. Aladdin Systems                      (InstallerMaker software)
  4396. Arizona Macintosh Users Group        (BBS in a BOX CD-ROM)
  4397. Club Macintosh de Quebec
  4398. CP Shareware
  4399. IDG Communications Nederland         (MacWorld CD-ROM)
  4400. Pacific HiTech, Inc.                 (Info-Mac CD-ROM)
  4401. Quantum Technologies, Inc.           (The Right Stuffed CD-ROM)
  4402.  
  4403. You are not allowed to distribute modified versions of this list,
  4404. including, but not limited to, deleting, adding or moving text or adding
  4405. non-text parts. Distribution in any electronical format except a normal
  4406. (or compressed) text file is not allowed without permission.
  4407. You are not allowed to redistribute it with any other name than
  4408. 'gestalt-selectors-XX.YYY' (where XX is the version number and YYY the suffix
  4409. to indicate compression etc.) unless because of technical reasons. In such
  4410. case a name should be chosen which resambles it as closely as possible to
  4411. avoid confusion.
  4412.  
  4413. Editors' Address
  4414. ----------------
  4415. Rene G.A. Ros
  4416. student Computer Science (fulltime),
  4417.        Hogeschool van Amsterdam (Institute of Technology)
  4418. member Computer Department (parttime),
  4419.        Biology Faculty, Vrije University Amsterdam
  4420. contract programmer Pascal and C, also 4th Dimension and other data-bases
  4421.  
  4422. Internet  : rgaros@bio.vu.nl (preferred)
  4423.             rgaros@nikhefk.nikhef.nl
  4424.             rgaros@htsa.hva.nl
  4425.             rgaros@dds.hacktic.nl
  4426. CompuServe: >INTERNET: rgaros@bio.vu.nl
  4427.             100112,1363
  4428.  
  4429. Mailing list:
  4430. Internet    contributions:
  4431.             gestalt-selectors-list@bio.vu.nl
  4432.  
  4433.             to subscribed/unsubscribe and for the archive server:
  4434.             gestalt-selectors-list-request@bio.vu.nl
  4435.  
  4436. CompuServe  contributions:
  4437.             >INTERNET: gestalt-selectors-list@bio.vu.nl
  4438.  
  4439.             to subscribed/unsubscribe and for the archive server:
  4440.             >INTERNET: gestalt-selectors-list-request@bio.vu.nl
  4441.  
  4442. Please contact me at the INTERNET address. I read my mail there almost
  4443. daily, while I log on to CompuServe only once or twice a month.
  4444.